目录
环境
ocp3.11
现象
昨天手贱打算把默认的prometheus-operator所在的openshift-monitoring这个namespace给删掉
# oc get ns |grep monitoring
openshift-monitoring Terminating 8d
但是始终处于Terminating一直卡住。
解决
官方给了解决办法:https://access.redhat.com/solutions/4165791
1. 找到要移除的namespace
# oc get ns |grep monitoring
openshift-monitoring Terminating 8d
2. 把terminating状态的namespace写入tmp.josn中
# oc get namespace openshift-monitoring -o json > tmp.json
3. 移除tmp.json中finalizers字段的值: kubernetes
修改后的tmp.json
{
"apiVersion": "v1",
"kind": "Namespace",
"metadata": {
"annotations": {
"alm-manager": "operator-lifecycle-manager.olm-operator",
"kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"v1\",\"kind\":\"Namespace\",\"metadata\":{\"annotations\":{\"alm-manager\":\"operator-lifecycle-manager.olm-operator\",\"openshift.io/sa.scc.mcs\":\"s0:c88,c27\",\"openshift.io/sa.scc.supplemental-groups\":\"1007710000/10000\",\"openshift.io/sa.scc.uid-range\":\"1007710000/10000\"},\"creationTimestamp\":\"2021-03-30T10:52:52Z\",\"deletionTimestamp\":\"2021-04-07T09:44:03Z\",\"name\":\"openshift-monitoring\",\"namespace\":\"\",\"resourceVersion\":\"15879837\",\"selfLink\":\"/api/v1/namespaces/openshift-monitoring\",\"uid\":\"13419003-9146-11eb-8c99-005056a91cda\"},\"spec\":{},\"status\":{\"phase\":\"Terminating\"}}\n",
"openshift.io/node-selector": "",
"openshift.io/sa.scc.mcs": "s0:c88,c27",
"openshift.io/sa.scc.supplemental-groups": "1007710000/10000",
"openshift.io/sa.scc.uid-range": "1007710000/10000"
},
"creationTimestamp": "2021-03-30T10:52:52Z",
"deletionTimestamp": "2021-04-07T09:44:03Z",
"name": "openshift-monitoring",
"resourceVersion": "16072265",
"selfLink": "/api/v1/namespaces/openshift-monitoring",
"uid": "13419003-9146-11eb-8c99-005056a91cda"
},
"spec": {
"finalizers": [
]
},
"status": {
"phase": "Terminating"
}
}
4. 开启临时代理
# oc proxy
5. 另开一个终端,执行以下命令
# curl -k -H "Content-Type: application/json" -X PUT --data-binary @tmp.json http://127.0.0.1:8001/api/v1/namespaces/openshift-monitoring/finalize
6. 如果第5步出现 authorization errors
在集群master节点执行
# curl --cacert /etc/origin/master/ca.crt --key /etc/origin/master/admin.key --cert /etc/origin/master/admin.crt -k -H "Content-Type: application/json" -X PUT --data-binary @tmp.json https://127.0.0.1:8443/api/v1/namespaces/openshift-monitoring/finalize
根源
见官方文档