Ausgleich von Serviceverfügbarkeit und -kosten beim Neustart verwalteter Knoten in Knotenpools
Erfahren Sie, wie Sie die Serviceverfügbarkeit und -kosten ausgleichen, wenn Sie verwaltete Knoten in Knotenpools neu starten, die Sie mit Kubernetes Engine (OKE) erstellt haben.
Wenn verwaltete Knoten in Knotenpools neu gestartet werden, um Boot-Volumes zu ersetzen oder Knoten zu beenden und zu ersetzen, schnürt die Kubernetes Engine vorhandene Knoten automatisch ab, damit sie nicht verfügbar sind, und entleert die Knoten (mit den für den Knotenpool angegebenen Einstellungen für Cordon und Drain).
Sie können das Verhalten der Kubernetes Engine folgendermaßen anpassen, um Ihre eigenen Anforderungen an Serviceverfügbarkeit und -kosten zu erfüllen:
- Beim Ersetzen von Boot-Volumes und beim Beenden und Ersetzen von Knoten können Sie die Anzahl der Knoten angeben, die während des Vorgangs nicht verfügbar sein sollen (wird als Maximum unavailable oder kurz maxUnavailable bezeichnet). Je größer die Anzahl der Knoten ist, die nicht verfügbar sein dürfen, desto mehr Knoten kann Kubernetes Engine parallel aktualisieren, ohne die Kosten zu erhöhen. Je größer jedoch die Anzahl der Knoten ist, die nicht verfügbar sein dürfen, desto mehr Serviceverfügbarkeit kann beeinträchtigt werden.
- Beim Beenden und Ersetzen von Knoten können Sie die Anzahl zusätzlicher Knoten angeben, die während des Aktualisierungsvorgangs vorübergehend zulässig sein sollen (genannt Maximaler Anstieg oder kurz maxSurge). Je größer die Anzahl zusätzlicher Knoten ist, die Sie zulassen, desto mehr Knoten kann Kubernetes Engine parallel aktualisieren, ohne die Serviceverfügbarkeit zu beeinträchtigen. Je mehr Knoten Sie jedoch zulassen, desto höher sind die Kosten.
Sowohl für maxUnavailable als auch für maxSurge können Sie die zulässige Anzahl von Knoten als Ganzzahl oder als Prozentsatz der Anzahl von Knoten angeben, die in der Eigenschaft Knotenanzahl des Knotenpools in der Konsole angezeigt wird (die Eigenschaft Größe des Knotenpools in der API).
Wenn Sie beim Beenden und Ersetzen von Knoten zulässige Zahlen für zusätzliche Knoten (maxSurge) und nicht verfügbare Knoten (maxUnavailable) nicht explizit angeben, gilt Folgendes:
- Wenn Sie keinen Wert für maxSurge oder maxUnavailable angeben, lautet der Standardwert für maxSurge 1, und der Standardwert für maxUnavailable 0.
- Wenn Sie nur einen Wert für maxSurge angeben, lautet der Standardwert für maxUnavailable 0.
- Wenn Sie nur einen Wert für maxUnavailable angeben, lautet der Standardwert für maxSurge 1.
- Sie können 0 nicht als zulässige Zahl für zusätzliche Knoten (maxSurge) und nicht verfügbare Knoten (maxUnavailable) angeben.
Wenn Sie beim Ersetzen von Boot-Volumes nicht explizit eine zulässige Anzahl für nicht verfügbare Knoten angeben (maxUnavailable), gilt Folgendes:
- Wenn Sie keinen Wert für maxUnavailable angeben, lautet der Standardwert für maxUnavailable 1.
- Sie können 0 nicht als zulässige Zahl für maxUnavailable angeben.
Beachten Sie Folgendes:
- Am Ende des Vorgangs wird die Anzahl der Knoten im Knotenpool auf die Anzahl zurückgesetzt, die durch die in der Konsole angezeigte Eigenschaft Knotenanzahl des Knotenpools angegeben wird (die Eigenschaft Größe des Knotenpools in der API).
- Wenn Sie beim Beenden und Ersetzen von Knoten einen Wert für maxSurge während des Vorgangs angeben, muss Ihr Mandant über eine ausreichende Quota für die Anzahl zusätzlicher Knoten verfügen, die Sie angeben.
- Wenn Sie einen Wert für maxUnavailable angeben und der Knotenpool diese Anzahl von Knoten nicht verfügbar machen kann (z.B. aufgrund eines Podunterbrechungsbudgets), verläuft der Vorgang nicht erfolgreich.
- Wenn Sie einen Prozentsatz als Wert von maxUnavailable eingeben, rundet Kubernetes Engine den Prozentsatz auf die nächste Ganzzahl auf, wenn die zulässige Anzahl von Knoten berechnet wird.
- Beachten Sie beim Aktualisieren großer Knotenpools, dass die Werte, die Sie für maxUnavailable angeben, zu inakzeptabel langen Zykluszeiten führen können. Beispiel: Wenn Sie 1 als Wert für maxUnavailable angeben, wenn Sie die Knoten eines Knotenpools mit 1000 Knoten neu starten, kann es mehrere Tage dauern, bis die Kubernetes Engine alle Knoten im Knotenpool neu startet. Wenn der Knotenzyklusvorgang nicht innerhalb von 30 Tagen abgeschlossen wird, wird der Status der zugehörigen Arbeitsanforderung auf Nicht erfolgreich gesetzt. Leiten Sie eine weitere Anforderung für den Neustart des Knotens weiter, um den Vorgang fortzusetzen.
- Wenn verwaltete Knoten in einem Knotenpool neu gestartet werden, um den Knotenpool horizontal zu skalieren, beachten Sie, dass die Anzahl der Knoten im Knotenpool auf die als Wert für maxUnavailable angegebene Anzahl reduziert werden könnte. Infolgedessen können nachfolgende Vorgänge die Anzahl der verfügbaren Knoten unter der von Ihnen beabsichtigten Anzahl reduzieren, was die Serviceverfügbarkeit beeinträchtigt und die Workloads beeinträchtigt. Gehen Sie in solchen Fällen mit Vorsicht vor, und reduzieren Sie möglicherweise den Wert von maxUnavailable.