Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Stellen Sie Kubernetes-Ressourcen und -Pakete mithilfe von Amazon EKS und einem Helm-Chart-Repository in Amazon S3 bereit
Erstellt von Sagar Panigrahi (AWS)
Umgebung: PoC oder Pilot | Technologien: Container und Mikroservices; DevOps | AWS-Dienste: Amazon EKS |
Übersicht
Dieses Muster hilft Ihnen, Kubernetes-Anwendungen unabhängig von ihrer Komplexität effizient zu verwalten. Das Muster integriert Helm in Ihre bestehenden CI/CD-Pipelines (Continuous Integration and Continuous Delivery), um Anwendungen in einem Kubernetes-Cluster bereitzustellen. Helm ist ein Kubernetes-Paketmanager, der Sie bei der Verwaltung von Kubernetes-Anwendungen unterstützt. Helm-Diagramme helfen bei der Definition, Installation und Aktualisierung komplexer Kubernetes-Anwendungen. Diagramme können versioniert und in Helm-Repositorys gespeichert werden, wodurch die mittlere Wiederherstellungszeit (MTTR) bei Ausfällen verbessert wird.
Dieses Muster verwendet Amazon Elastic Kubernetes Service (Amazon EKS) für den Kubernetes-Cluster. Es verwendet Amazon Simple Storage Service (Amazon S3) als Helm-Diagramm-Repository, sodass die Diagramme zentral verwaltet und von Entwicklern im gesamten Unternehmen abgerufen werden können.
Voraussetzungen und Einschränkungen
Voraussetzungen
Ein aktives Amazon Web Services (AWS) -Konto mit einer Virtual Private Cloud (VPC)
Ein Amazon EKS-Cluster
Worker-Knoten, die innerhalb des Amazon EKS-Clusters eingerichtet sind und bereit sind, Workloads aufzunehmen
Kubectl für die Konfiguration der Amazon EKS kubeconfig-Datei für den Zielcluster auf dem Client-Computer
Zugriff auf AWS Identity and Access Management (IAM) zur Erstellung des S3-Buckets
IAM-Zugriff (programmatischer oder Rollenzugriff) auf Amazon S3 vom Client-Computer
Quellcodeverwaltung und eine CI/CD-Pipeline
Einschränkungen
Derzeit wird das Aktualisieren, Löschen oder Verwalten von benutzerdefinierten Ressourcendefinitionen (CRDs) nicht unterstützt.
Wenn Sie eine Ressource verwenden, die auf eine CRD verweist, muss die CRD separat installiert werden (außerhalb des Diagramms).
Produktversionen
Helm v3.6.3
Architektur
Zieltechnologie-Stack
Amazon EKS
Amazon VPC
Amazon S3
Verwaltung des Quellcodes
Helm
Kubectl
Zielarchitektur
![Client Helm und Kubectl stellen ein Helm-Chart-Repo in Amazon S3 für Amazon EKS-Cluster bereit.](images/pattern-img/d3f993e6-4d96-4cb9-a075-c4debe431fd7/images/2f09f7bb-440a-4c4b-b29f-08d136d1ada4.png)
Automatisierung und Skalierung
AWS CloudFormation kann verwendet werden, um die Erstellung der Infrastruktur zu automatisieren. Weitere Informationen finden Sie unter Erstellen von Amazon EKS-Ressourcen mit AWS CloudFormation in der Amazon EKS-Dokumentation.
Helm soll in Ihr vorhandenes CI/CD-Automatisierungstool integriert werden, um die Paketierung und Versionierung von Helm-Diagrammen zu automatisieren (außerhalb des Geltungsbereichs dieses Musters).
GitVersion oder Jenkins-Build-Nummern können verwendet werden, um die Versionierung von Diagrammen zu automatisieren.
Tools
Tools
Amazon EKS — Amazon Elastic Kubernetes Service (Amazon EKS) ist ein verwalteter Service für die Ausführung von Kubernetes auf AWS, ohne dass Sie Ihre eigene Kubernetes-Steuerebene einrichten oder verwalten müssen. Kubernetes ist ein Open-Source-System zur Automatisierung der Bereitstellung, Skalierung und Verwaltung von Anwendungen in Containern.
Helm — Helm
ist ein Paketmanager für Kubernetes, der Sie bei der Installation und Verwaltung von Anwendungen auf Ihrem Kubernetes-Cluster unterstützt. Amazon S3 — Amazon Simple Storage Service (Amazon S3) ist Speicher für das Internet. Mit Amazon S3 können Sie jederzeit beliebige Mengen von Daten von überall aus im Internet speichern und aufrufen.
Kubectl — Kubectl
ist ein Befehlszeilenprogramm zum Ausführen von Befehlen für Kubernetes-Cluster.
Code
Der Beispielcode ist angehängt.
Epen
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Installieren Sie den Helm-Client. | Verwenden Sie den folgenden Befehl, um den Helm-Client herunterzuladen und auf Ihrem lokalen System zu installieren.
| DevOps Ingenieur |
Validieren Sie die Helm-Installation. | Um zu überprüfen, ob Helm mit dem Kubernetes-API-Server innerhalb des Amazon EKS-Clusters kommunizieren kann, führen Sie folgenden Befehl aus. | DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Erstellen Sie ein Helm-Diagramm für NGINX. | Führen Sie den Befehl aus, um ein Helmdiagramm mit dem Namen | DevOps Ingenieur |
Überprüfen Sie die Struktur des Diagramms. | Um die Struktur des Diagramms zu überprüfen, führen Sie den Befehl tree aus | DevOps Ingenieur |
Deaktivieren Sie die Erstellung eines Dienstkontos im Diagramm. | Stellen Sie unter dem | DevOps Ingenieur |
Überprüfe (linte) das geänderte Diagramm auf syntaktische Fehler. | Führen Sie den folgenden Befehl aus, um das Diagramm vor der Installation im Zielcluster auf syntaktische Fehler zu überprüfen. | DevOps Ingenieur |
Installieren Sie das Diagramm, um Kubernetes-Ressourcen bereitzustellen. | Verwenden Sie den folgenden Befehl, um die Helm-Chart-Installation auszuführen.
Das optionale | DevOps Ingenieur |
Überprüfen Sie die Ressourcen im Amazon EKS-Cluster. | Verwenden Sie den folgenden Befehl, um die Ressourcen zu überprüfen, die als Teil des Helm-Diagramms im
| DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Ändern und aktualisieren Sie die Version. | Um das Diagramm zu ändern
| DevOps Ingenieur |
Sehen Sie sich die Geschichte der Helm-Version an. | Führen Sie den folgenden Befehl aus, um alle Versionen für eine bestimmte Version aufzulisten, die mit Helm installiert wurden.
| DevOps Ingenieur |
Überprüfen Sie die Details für eine bestimmte Version. | Bevor Sie zu einer funktionierenden Version wechseln oder ein Rollback durchführen und für eine zusätzliche Überprüfungsebene vor der Installation einer Revision, sollten Sie mit dem folgenden Befehl überprüfen, welche Werte an die einzelnen Versionen übergeben wurden.
| DevOps Ingenieur |
Gehen Sie zurück zu einer früheren Version. | Verwenden Sie den folgenden Befehl, um zu einer früheren Version zurückzukehren.
In diesem Beispiel wird auf Version 1 zurückgesetzt. | DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Erstellen Sie einen S3-Bucket für Helm-Charts. | Erstellen Sie einen eindeutigen S3-Bucket. Erstellen Sie im Bucket einen Ordner mit dem Namen | Cloud-Administrator |
Installieren Sie das Helm-Plugin für Amazon S3. | Verwenden Sie den folgenden Befehl, um das Helm-S3-Plugin auf Ihrem Client-Computer zu installieren.
Hinweis: Helm V3-Unterstützung ist mit der Plugin-Version 0.9.0 und höher verfügbar. | DevOps Ingenieur |
Initialisieren Sie das Amazon S3 Helm-Repository. | Verwenden Sie den folgenden Befehl, um den Zielordner als Helm-Repository zu initialisieren.
Der Befehl erstellt eine | DevOps Ingenieur |
Fügen Sie das Amazon S3 S3-Repository zu Helm hinzu. | Verwenden Sie den folgenden Befehl, um das Repository auf dem Client-Computer hinzuzufügen.
Dieser Befehl fügt dem Ziel-Repository auf dem Helm-Client-Computer einen Alias hinzu. | DevOps Ingenieur |
Überprüfen Sie die Repository-Liste. | Führen | DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Verpacken Sie die Karte. | Führen Sie den Befehl aus, um das von Ihnen erstellte | DevOps Ingenieur |
Speichern Sie das Paket im Amazon S3 Helm-Repository. | Um das Paket in das Helm-Repository in Amazon S3 hochzuladen, führen Sie den folgenden Befehl aus und verwenden Sie dabei den richtigen Namen der
| DevOps Ingenieur |
Suchen Sie nach der Helm-Karte. | Führen Sie den folgenden Befehl aus, um zu überprüfen, ob das Diagramm sowohl lokal als auch im Helm-Repository in Amazon S3 angezeigt wird.
| DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Ändern und verpacken Sie das Diagramm. | Stellen Sie in Die Versionierung wird idealerweise durch Automatisierung mithilfe von Tools wie GitVersion Jenkins-Build-Nummern in einer CI/CD-Pipeline aktualisiert. Die Automatisierung der Versionsnummer ist für dieses Muster nicht vorgesehen. | DevOps Ingenieur |
Pushen Sie die neue Version in das Helm-Repository in Amazon S3. | Führen Sie den folgenden Befehl aus, um das neue Paket mit Version 0.1.1 in das
| DevOps Ingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Suchen Sie nach allen Versionen des my-nginx-Diagramms. | Um alle verfügbaren Versionen eines Diagramms anzuzeigen, führen Sie den folgenden Befehl mit der Markierung aus.
Ohne die Markierung zeigt Helm standardmäßig die zuletzt hochgeladene Version eines Diagramms an. | DevOps Ingenieur |
Installieren Sie ein Diagramm aus dem Amazon S3 Helm-Repository. | Die Suchergebnisse der vorherigen Aufgabe zeigen die verschiedenen Versionen des
| DevOps Ingenieur |