Saltar al contenido principal

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"