Zum Inhalt

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

kubectl top node

oder für Pods

kubectl top pod -A|-n <Namespace>

Auflisten von Pods

Alle Pods auf einem Node:

kubectl get -A pod -o wide --field-selector spec.nodeName=<Node-Name>

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:

kubectl get -A pods -o wide --field-selector status.phase!=Running