Was ist eine Kubernetes-Bereitstellung?

URL kopieren

Eine Kubernetes-Bereitstellung ist ein Ressourcenobjekt in Kubernetes, das deklarative Updates für Apps bereitstellt. Mit einer Bereitstellung können Sie den Lifecycle einer Anwendung beschreiben, zum Beispiel welche Bilder für die App verwendet werden, wie viele Pods erforderlich sind und wie sie aktualisiert werden sollen. 

Mit einem Kubernetes-Objekt können Sie dem Kubernetes-System mitteilen, wie Ihre Cluster Workload aussehen soll. Nachdem ein Objekt erstellt wurde, wird mit dem Cluster sichergestellt, dass es vorhanden ist und der gewünschte Status Ihres Kubernetes-Clusters aufrechterhalten wird. 

Die manuelle Aktualisierung containerisierter Anwendungen kann einen hohen Zeit- und Arbeitsaufwand mit sich bringen. Das Upgrade eines Service auf die nächste Version erfordert den Start der neuen Pod-Version, das Stoppen der alten Pod-Version, das Warten und das Sicherstellen, dass die neue Version erfolgreich gestartet wurde. Falls ein Fehler auftritt, ist manchmal auch ein komplettes Rollback zu einer vorherigen Version erforderlich.

Die manuelle Ausführung dieser Schritte kann zu menschlichen Fehlern führen und die ordnungsgemäße Erstellung von Skripten einen erheblichen Aufwand erfordern. Beides kann zu einem Engpass im Release Process führen. 

Eine Kubernetes-Bereitstellung automatisiert diesen Prozess und macht ihn wiederholbar. Bereitstellungen werden komplett vom Kubernetes-Backend verwaltet, und der gesamte Aktualisierungsprozess wird auf der Serverseite ausgeführt – ohne Interaktion durch den Client.

Mit einer Bereitstellung wird gewährleistet, dass die gewünschte Anzahl von Pods ausgeführt werden und jederzeit verfügbar sind. Dazu wird der Aktualisierungsprozess vollständig aufgezeichnet und mit Optionen zum Anhalten, Fortsetzen und Zurücksetzen auf Vorversionen versioniert.

Mit dem Kubernetes-Bereitstellungsobjekt können Sie:

  • ReplicaSet oder Pods bereitstellen
  • Pods und ReplicaSets aktualisieren
  • Rollbacks auf frühere Bereitstellungsversionen durchführen
  • Bereitstellungen skalieren
  • Bereitstellungen anhalten oder fortsetzen

Zur Verwaltung Ihrer Anwendungen mit einer Kubernetes-Bereitstellung gehört auch die Art und Weise, wie eine Anwendung aktualisiert werden soll. Ein Hauptvorteil einer Bereitstellung ist die Möglichkeit, eine Reihe von Pods vorhersehbar zu starten und zu stoppen.

Rolling Updates-Strategie

Eine Rolling Updates-Strategie ermöglicht einen kontrollierten, schrittweisen Austausch von Anwendungs-Pods. So wird sichergestellt, dass immer eine Mindestanzahl verfügbar ist.

Durch die Bereitstellung wird sichergestellt, dass standardmäßig jederzeit maximal 25 % der Pods verfügbar sind und nicht mehr als 25 % der für den gewünschten Status angegebenen Anzahl von Pods bereitgestellt werden. 

Alte Pods werden erst dann eliminiert, wenn genügend neue Pods verfügbar sind, um die Mindestverfügbarkeit beizubehalten. Dazu werden keine neuen Pods erstellt, bis genügend alte Pods entfernt wurden.

Mit dem Bereitstellungsobjekt können Sie die Zahl verfügbarer und überschüssiger Pods über die Felder „maxSurge“ und „maxUnavailable“ steuern.

Bei einer Rolling Updates-Strategie treten während der Aktualisierung keine Ausfallzeiten auf. Die Anwendung muss jedoch so aufgebaut sein, dass sie die Operationen zum Eliminieren und Erstellen von Pods tolerieren kann.

Während des Aktualisierungsprozesses werden zwei Versionen des Containers gleichzeitig ausgeführt, was zu Problemen für die Service-Konsumenten führen kann.

Neuerstellungsstrategie

Bei einer Neuerstellungsstrategie werden vor der Erstellung neuer Pods alle alten entfernt. Kubernetes beendet zuerst alle Container der aktuellen Version und startet dann alle neuen Container gleichzeitig, wenn die alten Container entfernt wurden. 

Bei einer Neuerstellungsstrategie sind Ausfallzeiten unvermeidlich, weil alle Container mit alten Versionen gestoppt werden und keine neuen Container für eingehende Anfragen bereit sind. 

Es werden jedoch nicht zwei Versionen der Container gleichzeitig ausgeführt, was den Vorgang für Service-Konsumenten möglicherweise einfacher macht.

Red Hat Ressourcen

Bereitstellungen werden durch Verfassen eines Manifests erstellt. Dieses wiederum wird dann mit „kubectl apply“ auf den Kubernetes-Cluster angewendet. Alternativ können Sie ein deklaratives Bereitstellungsmuster verwenden. Konfigurationsdateien für Kubernetes können mit YAML oder JSON geschrieben werden.

Bei der Entwicklung einer Bereitstellung beschreiben Sie den gewünschten Status, den Kubernetes dann entweder mithilfe einer Rolling Updates- oder einer Neuerstellungsstrategie implementiert. 

Durch die Verwendung eines deklarativen Bereitstellungsmusters können Sie mit Kubernetes-Bereitstellungen die Ausführung von Upgrade- und Rollback-Prozessen für eine Gruppe von Pods automatisieren. Kubernetes Patterns sind wiederverwendbare Designmuster für containerbasierte Anwendungen und Services.  

Sie können eine Bereitstellung aktualisieren, indem Sie Änderungen an der Pod-Vorlagenspezifikation vornehmen. Eine Änderung am Spezifikationsfeld löst automatisch ein Update-Rollout aus.

Der Rollout Lifecycle besteht aus den Status „Progressing“, „Complete“ und „Failed“. Eine Bereitstellung befindet sich im Status „Progressing“, wenn sie gerade Update-Aufgaben wie z. B. das Aktualisieren oder Skalieren von Pods durchführt. 

Der Status „Complete“ zeigt an, dass alle Aufgaben erfolgreich abgeschlossen wurden und sich das System im gewünschten Status befindet. Der Status „Failed“ ist das Ergebnis eines Fehlers, durch den die Aufgaben der Bereitstellung nicht abgeschlossen werden können. 

Sie können den Status einer Bereitstellung mit dem Befehl „kubectl rollout status“ überprüfen oder überwachen. 

Sie benötigen Hilfe beim Einstieg in Kubernetes? Erfahren Sie, wie Sie Container für die Bereitstellung auf einem Kubernetes- und Red Hat® OpenShift® Cluster entwickeln und verwalten können. In diesem Kurs können Sie Grundlagen der Container-Verwaltung entwickeln, und zwar durch praktische Anwendungen mit Containern und Kubernetes. 

Kurs starten

Red Hat OpenShift 4 ist eine unternehmensfähige Kubernetes-Plattform. Damit erhalten Entwickler Self-Service-Umgebungen, in denen sie Anwendungen und automatisierte Full Stack-Operationen auf beliebigen Infrastrukturen entwickeln können.

Red Hat OpenShift integriert alle zusätzlichen Technologiekomponenten, die Kubernetes leistungsstark und unternehmenstauglich machen, darunter Registry, Networking, Telemetrie, Sicherheit, Automatisierung und Services.

 

Mit OpenShift können Entwickler neue containerisierte Apps erstellen, sie hosten und in der Cloud mit der Skalierbarkeit, Kontrolle und Orchestrierung bereitstellen, die man braucht, um aus einer guten Idee schnell und einfach ein neues Geschäft zu machen.

Mehr über Red Hat OpenShift erfahren
Hub

Der offizielle Red Hat Blog

Lernen Sie mehr über unser Ökosystem von Kunden, Partnern und Communities und erfahren Sie das Neueste zu Themen wie Automatisierung, Hybrid Cloud, KI und mehr.

Red Hat Testversionen

Unsere kostenlosen Testversionen unterstützen Sie dabei, praktische Erfahrungen zu sammeln, sich auf eine Zertifizierung vorzubereiten oder zu bewerten, ob ein Produkt die richtige Wahl für Ihr Unternehmen ist.

Weiterlesen

Gehostete Control Planes für Red Hat OpenShift | Vorteile

Gehostete Control Planes ermöglichen das Ausführen von Control Planes auf kleineren Knoten und senken dadurch Kosten für Cluster. Konzepte für Hybrid Cloud

Was sind Sandbox-Container? | Sandboxing von Containern

Sandbox-Container erfüllen strenge Sicherheitsanforderungen. Sie isolieren Anwendungen, indem sie virtuelle Maschinen verwenden, die Container in Pods starten.

Red Hat OpenShift für Entwicklungsteams und Developer

Mit Red Hat® OpenShift® können Entwickler Anwendungen mit den Tools ihrer Wahl entwickeln und bereitstellen, ohne Sorge um die Infrastruktur.

Ressourcen zu Container

Verwandte Artikel