Konfigurieren der maximalen Anzahl von nicht verfügbaren Pods während einer Aktualisierung

Wenn Sie Protokollierungsagent bereitstellen oder aktualisieren, können Sie die Datei logs-values.yaml so konfigurieren, dass sie einen optionalen Parameter enthält, der angibt, wie viele Pods während einer rollenden Aktualisierung nicht verfügbar sein können.

Mit dem optionalen Parameter updateStrategy.maxUnavailable können Sie die maximale Anzahl oder den maximalen Prozentsatz nicht verfügbarer Pods angeben, wenn der Agenten-Daemonset ein rollierendes Update durchführt. Schließen Sie einen Prozentwert in Anführungszeichen ein, damit er als Zeichenkette interpretiert wird. Schließen Sie eine Zahl nicht in Anführungszeichen ein, damit sie als int32 interpretiert wird. Standardmäßig wird ein Prozentwert von "25%" verwendet. Konfigurieren Sie Protokollierungsagent so, dass ein benutzerdefinierter Wert verwendet wird, indem Sie die Konfiguration updateStrategy.maxUnavailable zu Ihrer Datei log-values.yaml hinzufügen:

Im Folgenden wird festgelegt, dass maximal 10 % der Pods nicht verfügbar sein dürfen.

updateStrategy:
  maxUnavailable: "10%" # optional (default is 25%)

Im Folgenden wird festgelegt, dass maximal 5 Pods nicht verfügbar sein können.

updateStrategy:
  maxUnavailable: 5 # optional (default is 25%)

Nachdem Sie die logs-values.yaml geändert haben, können Sie den Agenten aktualisieren oder die Datei weiter bearbeiten, bevor Sie alle Änderungen übernehmen.

Wenn die Pods von einer alten Version von Protokollierungsagent auf eine neue Agentenversion aktualisiert werden, stoppt Kubernetes höchstens die Anzahl der Pods, die die alte Agentenversion updateStrategy.maxUnavailable ausführen.

Wenn die Anzahl updateStrategy.maxUnavailable der alten Pods erreicht ist, wird die rollende Aktualisierung angehalten, bis neue Pods mit der neuen Version laufen.

Der helm-Befehl kann so konfiguriert werden, dass er auf eine bestimmte Zeit wartet, bis die Aktualisierung abgeschlossen ist (siehe die helm-Upgrade-Optionen timeout und wait ), aktualisiert aber ansonsten nur die Daemonset-Definition und lässt Kubernetes die Agent-Pods aktualisieren. Der Kubernetes Controller wird so lange versuchen, die Agent-Pods zu aktualisieren, bis alle Pods aktualisiert sind.

Wenn bei neuen Pods Probleme auftreten, wird die Aktualisierung nicht fortgesetzt. Weitere Informationen zu Fehlern bei der Agentenkonfiguration finden Sie unter Ich erhalte eine Fehlermeldung beim Starten des Protokollierungsagent? Überprüfen und korrigieren Sie Ihre Konfiguration, falls erforderlich, und versuchen Sie die Aktualisierung erneut.