Kubernetes-Bereitstellungsstrategie

Die optimale Kubernetes-Rolloutstrategie für Ihre Anwendung finden

Kennen der Kubernetes-Bereitstellungsoptionen

Unabhängig davon, ob Sie die Markteinführungszeit verkürzen, resiliente Bereitstellungen ohne Ausfallzeiten erstellen, Apps und Features schneller oder häufiger freigeben oder mit größerer Flexibilität arbeiten möchten, ist die Wahl der richtigen Kubernetes-Bereitstellungsstrategie der Schlüssel zur Bereitstellung resilienter Anwendungen und Infrastrukturen. Jede Kubernetes-Bereitstellungsstrategie hat in Abhängigkeit von Ihren Zielen und Anforderungen ihre Vorteile.

Neu bei Kubernetes? Erlernen der Grundlagen

Erstellen von Kubernetes-Bereitstellungen

Bevor Sie eine Kubernetes-Bereitstellungsstrategie implementieren, müssen Sie die Teile einer Kubernetes-Bereitstellung kennen und verstehen, wie sie alle zusammen wirken.

Inhalt einer Kubernetes-Bereitstellung

YAML-Datei

Der gewünschte Zustand für den von Ihnen beschriebenen Kubernetes-Cluster (die Konfiguration von Pods), der als Grundlage für eine Kubernetes-Bereitstellung dient.

Pods

Die Container, freigegebenen Ressourcen und die Umgebung, die Ihre Anwendung oder Ihr Workflow ausführen muss.

ReplicaSet

Gruppen von identisch konfigurierten Pods werden als ReplicaSets bezeichnet, die sicherstellen, dass die in der YAML-Datei für eine Kubernetes-Bereitstellung beschriebene Art und Anzahl von Pods zu jeder Zeit ausgeführt wird. Wenn ein Pod ausfällt, wird ein neuer erstellt.

Kube-controller-manager

Ändert den aktuellen Zustand des Clusters entsprechend dem in der YAML beschriebenen Zielzustand, erstellt neue Pods und ReplicaSets und aktualisiert oder entfernt bestehende Pods und ReplicaSets.

Kube-scheduler

Bestimmt, wie Ihre Pods und ReplicaSets auf Ihren Workerknoten bereitgestellt werden, und verteilt den Datenverkehr auf diese Knoten.

Rollout

Der Prozess der Neukonfiguration des Clusters von seinem aktuellen Zustand in den angestrebten Zustand – in den meisten Fällen ohne Ausfallzeiten.

Kubernetes-Bereitstellungsarchitektur

Funktionsweise der Kubernetes-Rollouts

  1. Erstellen Sie eine YAML-Datei, die die gewünschte Zustandskonfiguration des Clusters beschreibt.
  2. Wenden Sie die YAML-Datei über kubectl (die Kubernetes-Befehlszeilenschnittstelle) auf den Cluster an.
  3. Kubectl sendet die Anforderung an den kube-apiserver, der die Anforderung authentifiziert und autorisiert, bevor die Änderung in einer Datenbank (etcd) aufgezeichnet wird.
  4. Der kube-controller-manager überwacht das System kontinuierlich auf neue Anforderungen und arbeitet daran, den Systemzustand mit dem gewünschten Zustand abzustimmen – dabei werden ReplicaSets, Bereitstellungen und Pods im Prozess erstellt.
  5. Nachdem alle Controller ausgeführt wurden, sieht der kube-scheduler, dass sich Pods im Zustand „Ausstehend“ befinden, da sie noch nicht für die Ausführung auf einem Knoten geplant sind. Der Planer findet geeignete Knoten für die Pods und kommuniziert dann mit dem Kubelet der einzelnen Knoten, um die Steuerung zu übernehmen und die Bereitstellung zu starten.

Anwendungsfälle für die Kubernetes-Bereitstellung

Rollout von Containeranwendungen und -workflows durch Kubernetes-Bereitstellungen auf vier unterschiedliche Arten. Die von Ihnen verwendete Kubernetes-Bereitstellungsstrategie kann einen oder mehrere dieser Anwendungsfälle verwenden.

Erstellung

Führen Sie ein Rollout vollständig neuer Kubernetes-Pods und ReplicaSets durch.

Update

Deklarieren Sie einen neuen Zielzustand, und führen Sie kontrolliert einen Rollout für neue Pods und ReplicaSets aus.

Rollback

Setzen Sie die Kubernetes-Bereitstellung in einen früheren Zustand zurück. Dies ist hilfreich, wenn der aktuelle Zustand nicht stabil ist.

Skalierung

Erhöhen Sie die Anzahl der Pods und ReplicaSets für die Kubernetes-Bereitstellung, ohne sie zu ändern.

Kubernetes-Bereitstellungsstrategien

Die beste Kubernetes-Bereitstellungsstrategie für Ihr Szenario hängt von vielen Faktoren ab: akzeptable Ausfallzeiten (sofern überhaupt möglich), Ihre Bereitstellungsumgebung, Ihr Vertrauen in die Stabilität einer neuen Version oder Plattform, Testbedarf und erhoffter Erkenntnisgewinn, Ressourcenkosten, Verfügbarkeit und Unternehmensziele. Hier sind vier allgemeine Bereitstellungsstrategien, die Unternehmen in der Produktionsumgebung verwenden.

Ramped (gestaucht)

Die Standardmethode für den Kubernetes-Rollout ist die „Ramped“-Bereitstellung (gestaucht). Bei dieser Bereitstellung werden die Pods langsam nacheinander ersetzt, um Ausfallzeiten zu vermeiden. Alte Pods werden erst dann zentral herunterskaliert, wenn neue Pods bereit sind. Wenn bei Ihrer Bereitstellung Probleme auftreten, können Sie die Kubernetes-Bereitstellung unterbrechen oder abbrechen, ohne den gesamten Cluster offline zu nehmen.

Blau/Grün

Bei einer blau/grünen Bereitstellung geben Sie eine neue Version (blau) Ihrer Anwendung oder Ihres Workflows frei, während die aktuelle Version (grün) noch ausgeführt wird. Auf diese Weise können Sie die blaue Version in der Produktionsumgebung testen, während gleichzeitig die Benutzer nur mit der grünen, stabilen Version in Kontakt kommen. Nach dem Test ersetzt die blaue Version schrittweise die grüne Version.

Canary

Ermöglichen Sie Ihren Kunden, Ihre Kubernetes-Bereitstellung zu testen, indem Sie die neue Version für eine kleine Gruppe von Kunden freigeben. Sie führen ein ReplicaSet der neuen Version zusammen mit der aktuellen Version aus und skalieren dann nach einer bestimmten Zeitspanne ohne Fehler die neue Version zentral hoch, während Sie die alte Version entfernen.

A/B-Tests

Ähnlich wie die Canary-Kubernetes-Bereitstellungsstrategie richtet sich eine A/B-Teststrategie an eine bestimmte Kundengruppe. Eine A/B-Testbereitstellung zielt jedoch nicht nur auf die Stabilität einer Version ab – sie wird auch zum Testen verwendet, wie effektiv die Version beim Erreichen der Geschäftsziele ist. Die neue Version wird auf der Grundlage von Faktoren wie Cookies, Geolocation, Betriebssystem und Gerätetyp an die Benutzer verteilt und wird häufig zusammen mit der aktuellen Version ausgeführt, wobei die zentrale Hochskalierung erfolgt, wenn sich die neue Version bewährt hat.

Kubernetes-Bereitstellungstools

Sie können zwar die Befehlszeilen- oder YAML-Dateien zum Ausführen einer der genannten Kubernetes-Bereitstellungsstrategien verwenden, aber durch die Implementierung von Kubernetes-Bereitstellungstools und -Diensten wie den folgenden gewinnen Sie mehr Einfluss auf Ihre Cluster und Bereitstellungen.

Azure DevOps

Eine vollständige Anwendungslieferkette zur Automatisierung von Kubernetes-Bereitstellungen. Bringen Sie Geschwindigkeit und Sicherheit in Einklang, während Sie Code schneller und effizienter bereitstellen.

Weitere Informationen

Helm

Ein Open-Source-Paketerstellungstool. Installieren, aktualisieren und verwalten Sie Kubernetes-Anwendungen mithilfe von Diagrammen, die Sie erstellen, versionieren, teilen und veröffentlichen.

Weitere Informationen

Azure Kubernetes Service (AKS)

Ein sicherer und vollständig verwalteter Kubernetes-Dienst mit Hochverfügbarkeit. Stellen Sie Containeranwendungen in der Cloud bereit und verwalten Sie sie.

Weitere Informationen

Sind Sie bereit? Testen Sie Kubernetes kostenlos in Azure