vim get .sh
#!/bin/bash
# 获取所有命名空间列表
namespaces=$(kubectl get namespaces -o jsonpath='{.items[*].metadata.name}')
# 遍历命名空间
for ns in $namespaces; do
echo "导出命名空间 '$ns' 的资源..."
mkdir -p "$ns" # 创建命名空间文件夹
#
需要导出pvc可以自己加
kubectl get pvc -n "$ns" -o yaml > "$ns/pvc.yaml"
# 导出 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 "资源导出完成。"
将文件拷贝到新的机器上直接执行命令导入
find ./ -type f |xargs -i kubectl apply -f {}