Was ist der Unterschied zwischen dem Rollout-Neustart-Pod und dem Löschen-Pod?

Was ist der Unterschied zwischen dem Rollout-Neustart-Pod und dem Löschen-Pod?

Was ist der Unterschied zwischen „Rollout Restart Pod“ und „Delete Pod“ in K8s? Starten beide den Pod neu?

Antwort1

In Kubernetes werden die Befehle „rollout restart“ und „delete“ verwendet, um Pods neu zu starten bzw. zu löschen. Sie funktionieren jedoch auf unterschiedliche Weise und haben unterschiedliche Auswirkungen auf die Pods und das Gesamtsystem.

Der Befehl „Rollout-Neustart“ wird verwendet, um eine Bereitstellung oder einen Replikationssatz in Kubernetes neu zu starten. Dies bedeutet, dass die vorhandenen Pods in der Bereitstellung oder im Replikationssatz durch neue ersetzt werden, die über die neueste Version des Anwendungscodes und alle aktualisierten Konfigurationen verfügen. Dies ist nützlich, um Aktualisierungen für eine Anwendung bereitzustellen oder eine Bereitstellung neu zu starten, die nicht ordnungsgemäß funktioniert.

Der Befehl „delete“ hingegen wird verwendet, um einen Pod direkt zu löschen, ohne die Bereitstellung oder den Replikationssatz zu beeinträchtigen. Dadurch wird der Pod aus dem System entfernt und die von ihm verwendeten Ressourcen freigegeben. Dies ist nützlich, um Pods zu entfernen, die nicht mehr benötigt werden, oder um Probleme mit einzelnen Pods zu beheben.

Insgesamt können sowohl die Befehle „rollout restart“ als auch „delete“ zum Neustarten von Pods in Kubernetes verwendet werden, sie funktionieren jedoch auf unterschiedliche Weise und haben unterschiedliche Auswirkungen auf das System. Der Befehl „rollout restart“ wird zum Neustarten einer gesamten Bereitstellung oder eines Replikationssatzes verwendet, während der Befehl „delete“ zum Löschen einzelner Pods verwendet wird.

Antwort2

Für andere Leute, die hier landen: kubectl rolloutGilt nicht für Pods. Gemäß der Befehlszeilenhilfe ( kubectl rollout -h):

 Valid resource types include:

  *  deployments
  *  daemonsets
  *  statefulsets

Während ich dies schreibe, erhalten Sie wahrscheinlich eine Fehlermeldung wie die folgende, wenn Sie versuchen, einen Rollout-Neustart auf einem Pod auszuführen:

$ kubectl rollout restart pod test-zrdcs
error: pods "test-zrdcs" restarting is not supported

Bei Pod-Ressourcen bewirkt ein Löschvorgang, was er verspricht, und versucht, den Pod zu löschen. Wenn der Pod von einer Ressource auf höherer Ebene (z. B. Replikationssatz oder Bereitstellung) verwaltet wird, kann dieses Objekt den gelöschten Pod ersetzen.

Dies ist die Version, die kubectlich gerade verwende:

$ kubectl version --client --short
Client Version: v1.25.4

verwandte Informationen