Kubernetes 删除namespace Terminating解决脚本

2023年 7月 27日 44.8k 0

当我们删除namespace的时候,经常会出现状态为Terminating,我们可以使用下面的脚本进行处理,从而减少ns 出现Terminating夯住的情况

脚本内容如下

  1. [root@k8s-01 ~]# cat kubedel.sh
  2. #!/bin/bash
  3. # 获取要删除的 namespace 名称
  4. NAMESPACE="$1"
  5. # 如果没有传入参数,提示用户传入 namespace 名称
  6. if [ -z "$NAMESPACE" ]
  7. then
  8. echo "请传入要删除的 namespace 名称:"
  9. read NAMESPACE
  10. fi
  11. # 提示用户 namespace 名称
  12. echo "您将要删除的 namespace 名称是:$NAMESPACE"
  13. # 使用 kubectl 命令获取 namespace 对应的 JSON 格式,再用 jq 工具修改 namespace 的 spec 属性,并将修改后的 JSON 数据保存到 temp.json 文件中
  14. kubectl get namespace "$NAMESPACE" -o json | jq '.spec = {"finalizers":[]}' > temp.json
  15. # 使用 curl 命令发送 PUT 请求,删除指定的 namespace
  16. curl -k -H "Content-Type: application/json" -X PUT --data-binary @temp.json "127.0.0.1:8001/api/v1/namespaces/$NAMESPACE/finalize"
  17. # 检查是否删除成功,输出成功或失败信息
  18. if kubectl get namespace "$NAMESPACE" >/dev/null 2>&1
  19. then
  20. echo "删除 namespace 成功"
  21. else
  22. echo "删除 namespace 失败"
  23. fi

效果图:
当删除不存在的ns

正常删除ns

相关文章

KubeSphere 部署向量数据库 Milvus 实战指南
探索 Kubernetes 持久化存储之 Longhorn 初窥门径
征服 Docker 镜像访问限制!KubeSphere v3.4.1 成功部署全攻略
那些年在 Terraform 上吃到的糖和踩过的坑
无需 Kubernetes 测试 Kubernetes 网络实现
Kubernetes v1.31 中的移除和主要变更

发布评论