You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编写Shell脚本:检查并删除指定Kubernetes命名空间直至完成

Kubernetes命名空间检查与删除脚本

以下是满足需求的Shell脚本,包含命名空间存在性检查、删除操作及等待删除完成的完整逻辑:

#!/bin/bash

# 定义需要处理的命名空间列表
NAMESPACES=("aaa-new-ui-dev" "bbb-java-new-ui-dev")

# 遍历每个命名空间执行操作
for ns in "${NAMESPACES[@]}"; do
    # 静默检查命名空间是否存在
    if kubectl get namespace "$ns" &>/dev/null; then
        echo "命名空间 $ns 存在,启动删除流程..."
        # 执行命名空间删除命令
        kubectl delete namespace "$ns"
        # 等待命名空间完全删除,超时时间设为5分钟
        echo "等待 $ns 被彻底删除..."
        kubectl wait --for=delete namespace/"$ns" --timeout=5m
        # 根据等待结果输出状态
        if [ $? -eq 0 ]; then
            echo "命名空间 $ns 已成功删除"
        else
            echo "警告:删除 $ns 超时或执行失败"
        fi
    else
        echo "命名空间 $ns 不存在,跳过删除操作"
    fi
done

关键逻辑说明

  • 批量处理支持:用数组NAMESPACES存储目标命名空间,后续新增或修改只需调整数组内容即可
  • 静默存在性检查:kubectl get namespace "$ns" &>/dev/null通过屏蔽输出,仅通过命令返回值判断命名空间是否存在(返回0代表存在)
  • 等待删除完成:kubectl wait命令会持续监听命名空间状态,直到其被删除或达到超时时间,避免脚本提前退出而遗漏删除状态确认
  • 状态反馈:通过$?获取等待命令的返回值,明确告知用户删除是否成功完成

使用步骤

  1. 将脚本保存为cleanup-namespaces.sh
  2. 赋予执行权限:chmod +x cleanup-namespaces.sh
  3. 执行脚本:./cleanup-namespaces.sh

注意:执行脚本需具备Kubernetes集群的命名空间查看与删除权限,确保当前kubectl上下文已正确配置到目标集群。

内容的提问来源于stack exchange,提问作者vikash sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 06:46:05