Dump
Bash
Desde el entorno del cliente (solo kubectl):
OUT="cluster_dump_$(date -u +%Y%m%dT%H%M%SZ)"
mkdir "$OUT"
FMT="yaml"
# Cluster-level
kubectl version -o $FMT > "$OUT/version.$FMT"
kubectl get nodes -o $FMT > "$OUT/nodes.$FMT"
kubectl get namespaces -o $FMT > "$OUT/namespaces.$FMT"
kubectl get persistentvolumes -o $FMT > "$OUT/pvs.$FMT"
kubectl get storageclasses -o $FMT > "$OUT/storageclasses.$FMT"
kubectl get clusterrole,clusterrolebinding -o $FMT > "$OUT/cluster_rbac.$FMT"
kubectl api-resources -o wide > "$OUT/api_resources.txt"
# Namespaced workloads
kubectl get pods --all-namespaces -o $FMT > "$OUT/pods.$FMT"
kubectl get deployments --all-namespaces -o $FMT > "$OUT/deployments.$FMT"
kubectl get daemonsets --all-namespaces -o $FMT > "$OUT/daemonsets.$FMT"
kubectl get statefulsets --all-namespaces -o $FMT > "$OUT/statefulsets.$FMT"
kubectl get cronjobs --all-namespaces -o $FMT > "$OUT/cronjobs.$FMT"
kubectl get jobs --all-namespaces -o $FMT > "$OUT/jobs.$FMT"
# Networking
kubectl get services --all-namespaces -o $FMT > "$OUT/services.$FMT"
kubectl get ingresses --all-namespaces -o $FMT > "$OUT/ingresses.$FMT"
kubectl get networkpolicies --all-namespaces -o $FMT > "$OUT/networkpolicies.$FMT"
# Config & secrets (valores redactados en secrets)
kubectl get configmaps --all-namespaces -o $FMT > "$OUT/configmaps.$FMT"
kubectl get secrets --all-namespaces -o $FMT > "$OUT/secrets.$FMT"
# RBAC namespaced
kubectl get role,rolebinding --all-namespaces -o $FMT > "$OUT/ns_rbac.$FMT"
kubectl get serviceaccounts --all-namespaces -o $FMT > "$OUT/serviceaccounts.$FMT"
Comprimir
tar -czf "$OUT.tar.gz" "$OUT"
PowerShell
$OUT = "cluster_dump_$(Get-Date -Format 'yyyyMMddTHHmmssZ' -AsUTC)"
New-Item -ItemType Directory -Path $OUT | Out-Null
$FMT = "yaml"
# Cluster-level
kubectl version -o $FMT | Out-File "$OUT/version.$FMT"
kubectl get nodes -o $FMT | Out-File "$OUT/nodes.$FMT"
kubectl get namespaces -o $FMT | Out-File "$OUT/namespaces.$FMT"
kubectl get persistentvolumes -o $FMT | Out-File "$OUT/pvs.$FMT"
kubectl get storageclasses -o $FMT | Out-File "$OUT/storageclasses.$FMT"
kubectl get clusterrole,clusterrolebinding -o $FMT | Out-File "$OUT/cluster_rbac.$FMT"
kubectl api-resources -o wide | Out-File "$OUT/api_resources.txt"
# Namespaced workloads
kubectl get pods --all-namespaces -o $FMT | Out-File "$OUT/pods.$FMT"
kubectl get deployments --all-namespaces -o $FMT | Out-File "$OUT/deployments.$FMT"
kubectl get daemonsets --all-namespaces -o $FMT | Out-File "$OUT/daemonsets.$FMT"
kubectl get statefulsets --all-namespaces -o $FMT | Out-File "$OUT/statefulsets.$FMT"
kubectl get cronjobs --all-namespaces -o $FMT | Out-File "$OUT/cronjobs.$FMT"
kubectl get jobs --all-namespaces -o $FMT | Out-File "$OUT/jobs.$FMT"
# Networking
kubectl get services --all-namespaces -o $FMT | Out-File "$OUT/services.$FMT"
kubectl get ingresses --all-namespaces -o $FMT | Out-File "$OUT/ingresses.$FMT"
kubectl get networkpolicies --all-namespaces -o $FMT | Out-File "$OUT/networkpolicies.$FMT"
# Config & secrets
kubectl get configmaps --all-namespaces -o $FMT | Out-File "$OUT/configmaps.$FMT"
kubectl get secrets --all-namespaces -o $FMT | Out-File "$OUT/secrets.$FMT"
# RBAC namespaced
kubectl get role,rolebinding --all-namespaces -o $FMT | Out-File "$OUT/ns_rbac.$FMT"
kubectl get serviceaccounts --all-namespaces -o $FMT | Out-File "$OUT/serviceaccounts.$FMT"
Comprimir
Compress-Archive -Path $OUT -DestinationPath "$OUT.zip"