1、现象
[root@node1 ~]# kubectl get ns
NAME STATUS AGE
default Active 29d
istio-system Terminating 15h
kube-node-lease Active 29d
kube-public Active 29d
kube-system Active 29d
kubekey-system Active 29d
- 可以看到istio-system名称空间状态是Terminating
2、强制删除
1. 导出状态为Terminating的名称空间的json
kubectl get ns istio-system -o json > istio-system.json
2. 删除json文件中的spec字段中内容,spec内容置为空
cat istio-system.json
{
"apiVersion": "v1",
"kind": "Namespace",
"metadata": {
"creationTimestamp": "2023-02-08T09:16:00Z",
"deletionTimestamp": "2023-02-09T00:40:59Z",
"labels": {
"kubernetes.io/metadata.name": "istio-system"
},
"name": "istio-system",
"resourceVersion": "239729",
"uid": "1d4f309d-2991-4f80-b50a-b70516e31012"
},
"spec": { # 这里面的内容被删除
},
"status": {
.... # 内容过多省略展示
"phase": "Terminating"
}
}
3. 新开启一个窗口,启动一个进程
kubectl proxy --port=8081
4. 在另一个窗口通过求情删除
curl -k -H "Content-Type:application/json" -X PUT --data-binary @istio-system.json http://127.0.0.1:8081/api/v1/namespaces/istio-system/finalize
@istio-system.json
是我们导出的文件istio-system
是需要删除的命名空间
5. 执行删除请求会得到如下内容信息
[root@node1 ~]# curl -k -H "Content-Type:application/json" -X PUT --data-binary @istio-system.json http://127.0.0.1:8081/api/v1/namespaces/istio-system/finalize
{
"kind": "Namespace",
"apiVersion": "v1",
"metadata": {
"name": "istio-system",
"uid": "1d4f309d-2991-4f80-b50a-b70516e31012",
"resourceVersion": "239729",
"creationTimestamp": "2023-02-08T09:16:00Z",
"deletionTimestamp": "2023-02-09T00:40:59Z",
"labels": {
"kubernetes.io/metadata.name": "istio-system"
},
"managedFields": [
{
"manager": "istioctl",
"operation": "Update",
"apiVersion": "v1",
"time": "2023-02-08T09:16:00Z",
"fieldsType": "FieldsV1",
"fieldsV1": {
"f:metadata": {
"f:labels": {
".": {},
"f:kubernetes.io/metadata.name": {}
}
}
}
},
{
"manager": "kube-controller-manager",
"operation": "Update",
"apiVersion": "v1",
"time": "2023-02-09T00:41:04Z",
"fieldsType": "FieldsV1",
"fieldsV1": {
"f:status": {
"f:conditions": {
".": {},
"k:{\"type\":\"NamespaceContentRemaining\"}": {
".": {},
"f:lastTransitionTime": {},
"f:message": {},
"f:reason": {},
"f:status": {},
"f:type": {}
},
"k:{\"type\":\"NamespaceDeletionContentFailure\"}": {
".": {},
"f:lastTransitionTime": {},
"f:message": {},
"f:reason": {},
"f:status": {},
"f:type": {}
},
"k:{\"type\":\"NamespaceDeletionDiscoveryFailure\"}": {
".": {},
"f:lastTransitionTime": {},
"f:message": {},
"f:reason": {},
"f:status": {},
"f:type": {}
},
"k:{\"type\":\"NamespaceDeletionGroupVersionParsingFailure\"}": {
".": {},
"f:lastTransitionTime": {},
"f:message": {},
"f:reason": {},
"f:status": {},
"f:type": {}
},
"k:{\"type\":\"NamespaceFinalizersRemaining\"}": {
".": {},
"f:lastTransitionTime": {},
"f:message": {},
"f:reason": {},
"f:status": {},
"f:type": {}
}
}
}
},
"subresource": "status"
}
]
},
"spec": {},
"status": {
"phase": "Terminating",
"conditions": [
{
"type": "NamespaceDeletionDiscoveryFailure",
"status": "False",
"lastTransitionTime": "2023-02-09T00:41:04Z",
"reason": "ResourcesDiscovered",
"message": "All resources successfully discovered"
},
{
"type": "NamespaceDeletionGroupVersionParsingFailure",
"status": "False",
"lastTransitionTime": "2023-02-09T00:41:04Z",
"reason": "ParsedGroupVersions",
"message": "All legacy kube types successfully parsed"
},
{
"type": "NamespaceDeletionContentFailure",
"status": "False",
"lastTransitionTime": "2023-02-09T00:41:04Z",
"reason": "ContentDeleted",
"message": "All content successfully deleted, may be waiting on finalization"
},
{
"type": "NamespaceContentRemaining",
"status": "True",
"lastTransitionTime": "2023-02-09T00:41:04Z",
"reason": "SomeResourcesRemain",
"message": "Some resources are remaining: kialis.kiali.io has 1 resource instances"
},
{
"type": "NamespaceFinalizersRemaining",
"status": "True",
"lastTransitionTime": "2023-02-09T00:41:04Z",
"reason": "SomeFinalizersRemain",
"message": "Some content in the namespace has finalizers remaining: kiali.io/finalizer in 1 resource instances"
}
]
}
6. 再次检查是否被删除
kubectl get ns
NAME STATUS AGE
default Active 29d
kube-node-lease Active 29d
kube-public Active 29d
kube-system Active 29d
kubekey-system Active 29d