k8s导出所有namespace内指定资源对象

方式一:

#!/bin/bash

# 获取所有命名空间列表
namespaces=$(kubectl get namespaces -o jsonpath='{.items[*].metadata.name}')

# 遍历命名空间
for ns in $namespaces; do
echo "导出命名空间 '$ns' 的资源..."

mkdir -p "$ns" # 创建命名空间文件夹

# 导出 Deployment 资源
kubectl get deployments -n "$ns" -o yaml > "$ns/deployments.yaml"

# 导出 Ingress 资源
kubectl get ingress -n "$ns" -o yaml > "$ns/ingresses.yaml"

# 导出 Service 资源
kubectl get services -n "$ns" -o yaml > "$ns/services.yaml"

# 导出 ConfigMap 资源
kubectl get configmaps -n "$ns" -o yaml > "$ns/configmaps.yaml"
done

echo "资源导出完成。"

方式二:

#!/bin/bash
for NS in namespace;do
mkdir ./$NS
resourceList=(
deploy
services
endpoints
ingress
secrets
pvc
cm
)

printList(){
  for aa in ${resourceList[@]};
  do
    aList=$(kubectl  -n $NS get $aa |grep -v NAME  |awk '{print $1}')
    if [ ! "${aList[*]}"x == "x" ];then
      [ -d ./${NS}/$aa ] || mkdir -p ./${NS}/$aa
      for i in $aList;
      do
        echo $aa $i
        kubectl -n $NS get $aa $i -o yaml > ${NS}/${aa}/$i.yaml
      done
    fi
  done
}

# create namespaces yaml
kubectl  get namespaces $NS -o yaml > ./${NS}/${NS}-namespaces.yaml

# create pv yaml
pvList=$(kubectl get pv |grep "$NS/" |awk '{print $1}')
if [ ! "${pvList[*]}"x == "x" ];then
  for i in ${pvList[@]}
  do
    echo pv $i
    kubectl get pv $i -o yaml > $i.pv.yaml
  done
fi

printList
done

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值