Ein produktionsreifer Kubernetes-Cluster erfordert Planung und Vorbereitung. Wenn Ihr Kubernetes-Cluster geschäftskritische Workloads ausführen soll, muss er so konfiguriert sein, dass er belastbar ist. Diese Seite erläutert Schritte, die Sie unternehmen können, um einen produktionsreifen Cluster einzurichten oder einen bestehenden Cluster für den Produktionseinsatz vorzubereiten. Wenn Sie bereits mit der Produktionseinrichtung vertraut sind und nur die Links benötigen, fahren Sie mit Nächste Schritte fort.
Typischerweise hat eine Kubernetes-Produktionsumgebung mehr Anforderungen als eine Kubernetes-Umgebung für persönliches Lernen, Entwicklung oder Tests. Eine Produktionsumgebung kann sicheren Zugriff durch viele Benutzer, konsistente Verfügbarkeit und die Ressourcen zur Anpassung an sich ändernde Anforderungen erfordern.
Wenn Sie entscheiden, wo Ihre Kubernetes-Produktionsumgebung betrieben werden soll (lokal oder in einer Cloud) und wie viel Verwaltung Sie selbst übernehmen oder anderen überlassen möchten, berücksichtigen Sie, wie Ihre Anforderungen an einen Kubernetes-Cluster durch die folgenden Aspekte beeinflusst werden:
Verfügbarkeit: Eine Einzel-Maschinen-Kubernetes-Lernumgebung hat einen einzelnen Ausfallpunkt. Die Erstellung eines hochverfügbaren Clusters bedeutet die Berücksichtigung von:
Skalierung: Wenn Sie erwarten, dass Ihre Kubernetes-Produktionsumgebung eine stabile Nachfrage erhält, können Sie möglicherweise die benötigte Kapazität einrichten und sind fertig. Wenn Sie jedoch erwarten, dass die Nachfrage im Laufe der Zeit wächst oder sich drastisch ändert, basierend auf saisonalen Schwankungen oder besonderen Ereignissen, müssen Sie planen, wie Sie skalieren können, um den erhöhten Druck durch mehr Anfragen an die Steuerungsebene und Worker-Knoten zu bewältigen oder herunterskalieren, um ungenutzte Ressourcen zu reduzieren.
Sicherheit und Zugriffsverwaltung: Auf Ihrem eigenen Kubernetes-Lerncluster haben Sie volle Administratorrechte. Bei gemeinsam genutzten Clustern mit wichtigen Workloads und mehr als ein oder zwei Benutzern ist jedoch ein differenzierterer Ansatz erforderlich, wer und was auf Cluster-Ressourcen zugreifen kann. Sie können rollenbasierte Zugriffskontrolle (RBAC) und andere Sicherheitsmechanismen verwenden, um sicherzustellen, dass Benutzer und Workloads Zugriff auf die benötigten Ressourcen erhalten, während Workloads und der Cluster selbst sicher bleiben. Sie können Grenzen für die Ressourcen setzen, auf die Benutzer und Workloads zugreifen können, indem Sie Richtlinien und Container-Ressourcen verwalten.
Bevor Sie eine Kubernetes-Produktionsumgebung selbst aufbauen, erwägen Sie, einen Teil oder die gesamte Arbeit an Anbieter von schlüsselfertigen Cloud-Lösungen oder andere Kubernetes-Partner zu übergeben. Optionen umfassen:
Unabhängig davon, ob Sie einen Kubernetes-Produktionscluster selbst erstellen oder mit Partnern zusammenarbeiten, lesen Sie die folgenden Abschnitte, um Ihre Anforderungen in Bezug auf die Steuerungsebene, die Worker-Knoten, die Benutzerzugriffe und die Workload-Ressourcen Ihres Clusters zu bewerten.
In einem Kubernetes-Produktionscluster verwaltet die Steuerungsebene den Cluster über Dienste, die auf viele verschiedene Arten über mehrere Computer verteilt werden können. Jeder Worker-Knoten stellt jedoch eine einzelne Einheit dar, die für die Ausführung von Kubernetes-Pods konfiguriert ist.
Der einfachste Kubernetes-Cluster hat die gesamte Steuerungsebene und die Worker-Knoten-Dienste auf derselben Maschine. Sie können diese Umgebung erweitern, indem Sie Worker-Knoten hinzufügen, wie im Diagramm in den Kubernetes-Komponenten dargestellt. Wenn der Cluster für eine kurze Zeit oder nach der Identifizierung eines schwerwiegenden Problems verworfen werden kann, könnte dies Ihren Anforderungen genügen.
Wenn Sie jedoch einen dauerhafteren, hochverfügbaren Cluster benötigen, sollten Sie Möglichkeiten in Betracht ziehen, die Steuerungsebene zu erweitern. Standardmäßig sollte der Cluster bei einem Maschinenausfall nicht heruntergefahren werden und die Ausführung des Clusters sollte es ermöglichen, Komponenten zu reparieren oder auszutauschen, ohne Ausfallzeiten zu verursachen.
Deployment-Werkzeuge: Die Seite Kubernetes mit Deployment-Werkzeugen installieren bietet Anleitungen zur Bereitstellung einer produktionsreifen Steuerungsebene.
Externe Dienste: Die Steuerungsebene läuft mit den Diensten etcd, API-Server, Scheduler und Controller-Manager, die jeweils auf verschiedenen Maschinen laufen können.
Replikation: Für hohe Verfügbarkeit kann die Steuerungsebene und ihre Dienste über mehrere Knoten repliziert werden. Weitere Informationen finden Sie unter Optionen für hochverfügbare Topologie.
Mehrere Zonen: Wenn es entscheidend ist, dass Ihr Cluster auch dann verfügbar bleibt, wenn ein gesamtes Rechenzentrum oder eine Region ausfällt, sollten Sie einen Cluster in mehreren Zonen in Betracht ziehen.
Produktionsreife Workloads müssen belastbar sein, und alles, worauf sie angewiesen sind (wie CoreDNS), muss ebenfalls belastbar sein. Unabhängig davon, ob Sie Ihre eigene Steuerungsebene verwalten oder einen Cloud-Anbieter dies für Sie tun lassen, müssen Sie dennoch überlegen, wie Sie Ihre Worker-Knoten verwalten möchten (manchmal auch einfach als Knoten bezeichnet).
In der Produktion gehen Sie möglicherweise von einem Modell, in dem Sie oder eine kleine Gruppe auf den Cluster zugreift, zu einem Modell über, in dem möglicherweise Dutzende oder Hunderte von Personen Zugriff benötigen. In einer Lern- oder Plattformentwicklungsumgebung haben Sie möglicherweise ein einzelnes Administratorkonto für alles, was Sie tun. In der Produktion benötigen Sie mehr Konten mit unterschiedlichen Zugriffsebenen auf verschiedene Namespaces.
Die Einrichtung eines produktionsreifen Clusters bedeutet, zu entscheiden, wie Sie selektiven Zugriff auf Cluster-Ressourcen gewähren möchten. Insbesondere müssen Sie die folgenden Strategien auswählen und umsetzen:
Als Administrator, der eine Kubernetes-Produktionsumgebung einrichtet, sind hier einige Dinge zu beachten:
Die Anforderungen von Produktions-Workloads können sowohl innerhalb als auch außerhalb der Kubernetes-Steuerungsebene Druck erzeugen. Berücksichtigen Sie diese Punkte, wenn Sie die Anforderungen der Workloads Ihres Clusters konfigurieren: