Richten Sie ein Helm v3-Chart-Repository in Amazon S3 ein - AWS Prescriptive Guidance

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.

Richten Sie ein Helm v3-Chart-Repository in Amazon S3 ein

Erstellt von Abhishek Sharma (AWS)

Umgebung: PoC oder Pilotprojekt

Technologien: DevOps; Container und Mikroservices; Modernisierung

Arbeitslast: Alle anderen Workloads

AWS-Dienste: Amazon S3

Übersicht

Dieses Muster hilft Ihnen, Helm v3-Diagramme effizient zu verwalten, indem Sie das Helm v3-Repository in Amazon Simple Storage Service (Amazon S3) in der Amazon Web Services (AWS) Cloud integrieren. Um dieses Muster verwenden zu können, müssen Sie mit Kubernetes und Helm, einem Kubernetes-Paketmanager, vertraut sein. Die Verwendung von Helm-Repositorys zum Speichern von Diagrammen und zur Steuerung von Diagrammversionen kann die mittlere Wiederherstellungszeit (MTTR) bei Ausfällen verbessern. 

Dieses Muster verwendet AWS CodeCommit für die Erstellung von Helm-Repositorys und verwendet einen S3-Bucket 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 AWS-Konto

  • Python-Version 2.7.12 oder höher

  • pip

  • Eine virtuelle private Cloud (VPC) mit Subnetzen und einer Amazon Elastic Compute Cloud (Amazon EC2) -Instanz 

  • Git ist auf der EC2-Instance installiert

  • Zugriff auf AWS Identity and Access Management (IAM) zur Erstellung des S3-Buckets

  • IAM-Zugriff (programmatischer oder Rollenzugriff) auf Amazon S3 vom Client-Computer aus

  • CodeCommit AWS-Repository

  • AWS-Befehlszeilenschnittstelle (AWS Command Line Interface, AWS CLI)

Produktversionen

  • Helm v3

  • Python-Version 2.7.12 oder höher

Architektur

Zieltechnologie-Stack

  • Amazon S3

  • AWS CodeCommit

  • Helm

  • Kubectl

  • Python und Pip

  • Git

  • Helm-S3-Plugin

Zielarchitektur

Helm-Repository in CodeCommit, EC2-Instance mit Helm, Git und Helm-S3, Helm-Diagramme in Amazon S3.

Automatisierung und Skalierung

  • Sie können Helm in Ihr bestehendes Automatisierungstool für Continuous Integration/Continuous Delivery (CI/CD) integrieren, um die Paketierung und Versionskontrolle von Helm-Charts zu automatisieren (außerhalb des Geltungsbereichs dieses Musters).

  • GitVersion oder Jenkins-Build-Nummern können verwendet werden, um die Versionskontrolle der Charts zu automatisieren.

Tools

  • 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.

  • helm-S3-Plugin — Das helm-S3-Plugin unterstützt die Interaktion mit Amazon S3. Es kann entweder mit Helm v2 oder Helm v3 verwendet werden.

Bewährte Methoden

< Der Autor entfernt diese Hinweise: Stellen Sie eine Liste mit Richtlinien und Empfehlungen bereit, die Benutzern helfen können, dieses Muster effektiver umzusetzen. >

Epen

AufgabeBeschreibungErforderliche Fähigkeiten

Installieren Sie den Helm v3-Client.

Führen Sie den folgenden Befehl aus, um den Helm-Client herunterzuladen und auf Ihrem lokalen System zu installieren: sudo curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

Cloud-Administrator, DevOps Ingenieur

Validieren Sie die Helm-Installation.

Führen Sie den folgenden Befehl aus, um den Helm-Client zu validieren: helm version --short

Cloud-Administrator, DevOps Ingenieur
AufgabeBeschreibungErforderliche 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 Namenstable/myapp. Das Beispiel in diesem Muster verwendet s3://my-helm-charts/stable/myapp als Zieldiagramm-Repository.

Cloud-Administrator, DevOps Ingenieur

Installieren Sie das Helm-S3-Plugin für Amazon S3.

Führen Sie den folgenden Befehl aus, um das Helm-S3-Plugin auf Ihrem Client-Computer zu installieren: helm plugin install https://github.com/hypnoglow/helm-s3.git

Cloud-Administrator, Ingenieur DevOps

Initialisieren Sie das Amazon S3 Helm-Repository.

Verwenden Sie den folgenden Befehl, um den Zielordner als Helm-Repository zu initialisieren: helm s3 init s3://my-helm-charts/stable/myapp 

Der Befehl erstellt eine index.yaml Datei im Ziel, um alle Diagramminformationen zu verfolgen, die an diesem Speicherort gespeichert sind.

Cloud-Administrator, DevOps Ingenieur

Überprüfen Sie das neu erstellte Helm-Repository.

Führen Sie den folgenden Befehl aus, um zu überprüfen, ob die index.yaml Datei erstellt wurde: aws s3 ls s3://my-helm-charts/stable/myapp/

Cloud-Administrator, DevOps Ingenieur

Fügen Sie das Amazon S3 S3-Repository zu Helm auf dem Client-Computer hinzu.

Verwenden Sie den folgenden Befehl, um den Ziel-Repository-Alias zum Helm-Client-Computer hinzuzufügen: helm repo add stable-myapp s3://my-helm-charts/stable/myapp/

Cloud-Administrator, DevOps Ingenieur
AufgabeBeschreibungErforderliche Fähigkeiten

Klonen Sie Ihre Helm-Charts.

Wenn in Ihrem CodeCommit Repository keine lokalen Helm-Charts vorhanden sind, klonen Sie sie aus Ihrem GitHub Repo, indem Sie den folgenden Befehl ausführen: git clone <url_of_your_helm_source_code>.git

Cloud-Administrator, Ingenieur DevOps

Package Sie die lokale Helm-Karte.

Verwenden Sie den folgenden Befehl, um das Diagramm, das Sie erstellt oder geklont haben, zu verpacken: helm package ./my-app  

Als Beispiel verwendet dieses Muster das my-app Diagramm. Der Befehl packt den gesamten Inhalt des my-app Diagrammordners in eine Archivdatei, die anhand der Versionsnummer benannt wird, die in der Chart.yaml Datei angegeben ist.

Cloud-Administrator, DevOps Ingenieur

Speichern Sie das lokale Paket im Amazon S3 Helm-Repository.

Führen Sie den folgenden Befehl aus, um das lokale Paket in das Helm-Repository in Amazon S3 hochzuladen: helm s3 push ./my-app-0.1.0.tgz stable-myapp

In dem Befehl my-app steht der Name Ihres Diagrammordners, 0.1.0 die unter erwähnte Diagrammversion und der Alias für stable-myapp das Ziel-Repository. Chart.yaml

Cloud-Administrator, DevOps Ingenieur

Suchen Sie nach dem Helm-Diagramm.

Um zu überprüfen, ob das Diagramm sowohl lokal als auch im Amazon S3 Helm-Repository angezeigt wird, führen Sie den folgenden Befehl aus: helm search repo stable-myapp

Cloud-Administrator, DevOps Ingenieur
AufgabeBeschreibungErforderliche Fähigkeiten

Ändern und verpacken Sie das Diagramm.

Legen Sie den replicaCount Wert auf fest1, und verpacken Sie dann das Diagramm, wobei Sie diesmal die Version in Chart.yaml ändern0.1.1. values.yaml Die Versionskontrolle wird idealerweise durch Automatisierung erreicht, indem Tools wie GitVersion oder Jenkins-Build-Nummern in einer CI/CD-Pipeline verwendet werden. Die Automatisierung der Versionsnummer ist für dieses Muster nicht vorgesehen. Führen Sie den folgenden Befehl aus, um das Diagramm zu verpacken: helm package ./my-app/

Cloud-Administrator, 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, Version 0.1.1, in das my-helm-chartsHelm-Repository in Amazon S3 zu übertragen: helm s3 push ./my-app-0.1.1.tgz stable-myapp

Cloud-Administrator, Ingenieur DevOps

Überprüfen Sie das aktualisierte Helm-Diagramm.

Führen Sie die folgenden Befehle aus, um zu überprüfen, ob das aktualisierte Diagramm sowohl lokal als auch im Amazon S3 Helm-Repository angezeigt wird.

helm repo update

helm search repo stable-myapp

Cloud-Administrator, DevOps Ingenieur
AufgabeBeschreibungErforderliche Fähigkeiten

Suchen Sie nach allen Versionen des my-app-Diagramms.

Um alle verfügbaren Versionen eines Diagramms anzuzeigen, führen Sie den folgenden Befehl mit der --versions Markierung aus: helm search repo my-app --versions 

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.

Eine automatische Installation ist für dieses Muster nicht vorgesehen, aber Sie können die Installation manuell durchführen. Die Suchergebnisse der vorherigen Aufgabe zeigen die verschiedenen Versionen des my-app Diagramms. Verwenden Sie den folgenden Befehl, um die neue Version (0.1.1) aus dem Amazon S3 Helm-Repository zu installieren: helm upgrade --install my-app-release stable-myapp/my-app --version 0.1.1 --namespace dev

DevOps Ingenieur
AufgabeBeschreibungErforderliche Fähigkeiten

Überprüfen Sie die Details für eine bestimmte Revision.

Ein automatisiertes Rollback ist für dieses Muster nicht vorgesehen, aber Sie können manuell zu einer früheren Version zurückkehren. 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: helm get values --revision=2 my-app-release

DevOps Ingenieur

Gehen Sie zurück zu einer früheren Version.

Ein automatisiertes Rollback ist für dieses Muster nicht vorgesehen. Verwenden Sie den folgenden Befehl, um manuell zu einer früheren Version zurückzukehren: helm rollback my-app-release 1 

In diesem Beispiel wird auf Revision Nummer 1 zurückgesetzt.

DevOps Ingenieur

Zugehörige Ressourcen