如何在删除处于Terminating状态的pod
K8s删除处于Terminating状态的命名空间
·
一、现象
当删除命名空间后,发现该空间一直处于Terminating状态
[root@weifeng-HP:/home/online/api2kafka$ ~]# kubectl get ns
NAME STATUS AGE
default Active 48d
kube-public Active 48d
kube-system Active 48d
monitoring Terminating 37m
二、现象
2.1开启一个窗口,启动一个进程
kubectl proxy --port=8081
2.2将namespace信息导出
kubectl get ns monitoring -o json > monitoring.json
2.3删除掉 “spec” 下的内容,即spec的{}设为空(因为k8s集群是携带认证的)
2.4通过发送请求的方式进行删除
curl -k -H "Content-Type:application/json" -X PUT --data-binary @monitoring.json http://127.0.0.1:8081/api/v1/namespaces/monitoring/finalize
@monitoring.json即为之前导出的命名空间文件;
结尾URL中namespaces后面为待删除的命名空间名称
执行删除命令返回文件内容
{
"kind": "Namespace",
"apiVersion": "v1",
"metadata": {
"name": "monitoring",
"uid": "0693944b-2f48-4484-ba09-ba9c6d7f5a13",
"resourceVersion": "11705186",
"creationTimestamp": "2022-05-18T07:25:29Z",
"deletionTimestamp": "2022-08-22T02:57:31Z",
"annotations": {
"kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"v1\",\"kind\":\"Namespace\",\"metadata\":{\"annotations\":{},\"name\":\"monitoring\"}}\n"
},
"managedFields": [
{
"manager": "kubectl-client-side-apply",
"operation": "Update",
"apiVersion": "v1",
"time": "2022-05-18T07:25:29Z",
"fieldsType": "FieldsV1",
"fieldsV1": {"f:metadata":{"f:annotations":{".":{},"f:kubectl.kubernetes.io/last-applied-configuration":{}}},"f:status":{"f:phase":{}}}
},
{
"manager": "kube-controller-manager",
"operation": "Update",
"apiVersion": "v1",
"time": "2022-08-22T02:57:36Z",
"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":{}}}}}
}
]
},
"spec": {
},
"status": {
"phase": "Terminating",
"conditions": [
{
"type": "NamespaceDeletionDiscoveryFailure",
"status": "True",
"lastTransitionTime": "2022-08-22T02:57:36Z",
"reason": "DiscoveryFailed",
"message": "Discovery failed for some groups, 1 failing: unable to retrieve the complete list of server APIs: metrics.k8s.io/v1beta1: the server is currently unable to handle the request"
},
{
"type": "NamespaceDeletionGroupVersionParsingFailure",
"status": "False",
"lastTransitionTime": "2022-08-22T02:57:36Z",
"reason": "ParsedGroupVersions",
"message": "All legacy kube types successfully parsed"
},
{
"type": "NamespaceDeletionContentFailure",
"status": "False",
"lastTransitionTime": "2022-08-22T02:57:36Z",
"reason": "ContentDeleted",
"message": "All content successfully deleted, may be waiting on finalization"
},
{
"type": "NamespaceContentRemaining",
"status": "False",
"lastTransitionTime": "2022-08-22T02:58:03Z",
"reason": "ContentRemoved",
"message": "All content successfully removed"
},
{
"type": "NamespaceFinalizersRemaining",
"status": "False",
"lastTransitionTime": "2022-08-22T02:57:36Z",
"reason": "ContentHasNoFinalizers",
"message": "All content-preserving finalizers finished"
}
]
}
检查删除操作,若没有monitoring的字段则表示删除成功
[root@weifeng-HP:/home/online/api2kafka$ ~]# kubectl get ns
NAME STATUS AGE
default Active 48d
kube-public Active 48d
kube-system Active 48d
更多推荐
已为社区贡献1条内容
所有评论(0)