nützliche Kommandos
Eine weitere Sammlung an Befehls-Sätzen und -Sequenzen zur Arbeit mit Kubernetes Deployments und deren Wartung.
Alle Deployments durchstarten
## als Einzeiler
# StatefulSets
for _ns in $(kubectl get ns -o name);do for _depl in $(kubectl get -n ${_ns##*/} statefulset -o name);do kubectl rollout -n ${_ns##*/} restart $_depl ;done;done
# Deployments
for _ns in $(kubectl get ns -o name);do for _depl in $(kubectl get -n ${_ns##*/} deployment -o name);do kubectl rollout -n ${_ns##*/} restart $_depl ;done;done
# DaemonSets
for _ns in $(kubectl get ns -o name);do for _depl in $(kubectl get -n ${_ns##*/} daemonset -o name);do kubectl rollout -n ${_ns##*/} restart $_depl ;done;done
... lesbarer (für ein Skript):
for _dtype in statefulset deployment daemonset
do
for _ns in $(kubectl get ns -o name)
do
for _depl in $(kubectl get -n ${_ns##*/} $_dtype -o name)
do
kubectl rollout -n ${_ns##*/} restart $_depl
done
done
done
Secrets auslesen
kubectl get [-n <Namespace>] secrets <Secret-Name> -o jsonpath='{.data.<Key>}' | base64 -d
# Beispiel einer Docker-Config:
kubectl get secrets myregauth -o jsonpath='{.data.\.dockerconfigjson}' | base64 -d
Auslastung der Nodes
oder für Pods
Auflisten von Pods
Alle Pods auf einem Node:
Alle Pods nicht auf benannten Nodes:
# Beispiel der Ausklammerung mehrerer Nodes
kubectl get -A pods -o wide --field-selector spec.nodeName!=<Node-Name 1>,spec.nodeName!=<Node-Name 2>
Alle Pods ohne System-Namespaces:
kubectl get -A pods -o wide --field-selector metadata.namespace!=kube-system,metadata.namespace!=longhorn-system,metadata.namespace!=traefik-system
# oder einfach alle Pods, die nicht im Kube-System oder default Namespace sind:
kubectl get -A pods -o wide --field-selector metadata.namespace!=kube-system,metadata.namespace!=default
Alle nicht laufende Pods ermitteln: