目錄
- json 格式導(dǎo)出 namespace 信息
- 修改 json 文件
- 開啟 proxy 服務(wù)
- 調(diào)用接口刪除 namespace
以下的 tool 為 Terminating 狀態(tài)的 namespace,下面相關(guān)的一些操作記得將 tool 修改成自己的 namespace 名稱
json 格式導(dǎo)出 namespace 信息
k get ns tool -o json > tool.json
修改 json 文件
{
"apiVersion": "v1",
"kind": "Namespace",
"metadata": {
"annotations": {
"applicationCnName": "tool",
"kubernetes.customized/bocloud_env_id": "3",
"kubernetes.customized/bocloud_partition_id": "172",
"kubernetes.customized/project_creator": "7",
"kubernetes.customized/project_id": "10",
"kubernetes.customized/tree_application_id": "10"
},
"creationTimestamp": "2022-10-18T06:38:25Z",
"deletionTimestamp": "2022-10-20T02:34:18Z",
"labels": {
"app": "tool"
},
"name": "tool",
"resourceVersion": "1011030",
"selfLink": "/api/v1/namespaces/tool",
"uid": "79793f2c-5290-4225-938b-8ce9e639a38c"
},
"spec": {
"finalizers": [
"kubernetes"
]
},
"status": {
"conditions": [
{
"lastTransitionTime": "2022-10-20T02:34:23Z",
"message": "Discovery failed for some groups, 2 failing: unable to retrieve the complete list of server APIs: custom.metrics.k8s.io/v1beta1: the server is currently unable to handle the request, metrics.k8s.io/v1beta1: the server is currently unable to handle the request",
"reason": "DiscoveryFailed",
"status": "True",
"type": "NamespaceDeletionDiscoveryFailure"
},
{
"lastTransitionTime": "2022-10-20T02:34:23Z",
"message": "All legacy kube types successfully parsed",
"reason": "ParsedGroupVersions",
"status": "False",
"type": "NamespaceDeletionGroupVersionParsingFailure"
},
{
"lastTransitionTime": "2022-10-20T02:34:23Z",
"message": "All content successfully deleted, may be waiting on finalization",
"reason": "ContentDeleted",
"status": "False",
"type": "NamespaceDeletionContentFailure"
},
{
"lastTransitionTime": "2022-10-20T02:34:23Z",
"message": "All content successfully removed",
"reason": "ContentRemoved",
"status": "False",
"type": "NamespaceContentRemaining"
},
{
"lastTransitionTime": "2022-10-20T02:34:23Z",
"message": "All content-preserving finalizers finished",
"reason": "ContentHasNoFinalizers",
"status": "False",
"type": "NamespaceFinalizersRemaining"
}
],
"phase": "Terminating"
}
}
將 spec 和 status 下面的內(nèi)容清空,將 metadata 字段花括號結(jié)尾的逗號去掉,保留完整的 json 格式
以下是修改過后的樣式 [ 提供參考的,用來和原始 json 做對比,好增加理解 ]
{
"apiVersion": "v1",
"kind": "Namespace",
"metadata": {
"annotations": {
"applicationCnName": "tool",
"kubernetes.customized/bocloud_env_id": "3",
"kubernetes.customized/bocloud_partition_id": "172",
"kubernetes.customized/project_creator": "7",
"kubernetes.customized/project_id": "10",
"kubernetes.customized/tree_application_id": "10"
},
"creationTimestamp": "2022-10-18T06:38:25Z",
"deletionTimestamp": "2022-10-20T02:34:18Z",
"labels": {
"app": "tool"
},
"name": "tool",
"resourceVersion": "1011030",
"selfLink": "/api/v1/namespaces/tool",
"uid": "79793f2c-5290-4225-938b-8ce9e639a38c"
}
}
開啟 proxy 服務(wù)
這個(gè)時(shí)候要新打開一個(gè)終端,開啟的 proxy 服務(wù)不是后臺運(yùn)行的,會(huì)占用一個(gè)終端
kubectl proxy
開啟后會(huì)返回如下的內(nèi)容
Starting to serve on 127.0.0.1:8001
調(diào)用接口刪除 namespace
在另一個(gè)可以操作命令的終端,執(zhí)行下面的 curl 命令
tool.json– 記得修改成自己的文件名稱tool/finalize– 里面的 tool 修改成自己的namespace名稱
curl -k -H "Content-Type: application/json" \ -X PUT --data-binary @tool.json \ http://127.0.0.1:8001/api/v1/namespaces/tool/finalize
通過 kubectl 命令查看 namespace 是否還存在






