Helm-Diagramme in Artifact Registry speichern
Helm ist der Paketmanager für Kubernetes. Dabei werden Diagramme verwendet, in denen eine Reihe von bereitzustellenden Kubernetes-Ressourcen definiert wird.
In dieser Schnellstartanleitung werden folgende Verfahren erläutert:
- Privates Repository in Artifact Registry erstellen
- Beispieldiagramm erstellen
- Beim Repository authentifizieren
- Diagramm in das Repository übertragen
- Diagramm bereitstellen
Hinweise
- Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
Artifact Registry, Google Kubernetes Engine APIs aktivieren.
-
Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
Artifact Registry, Google Kubernetes Engine APIs aktivieren.
Shell auswählen
Sie können diese Kurzanleitung entweder in Cloud Shell oder in Ihrer lokalen Shell ausführen.
- Cloud Shell
- Cloud Shell ist eine Shell-Umgebung für die Verwaltung von Ressourcen, die in Google Cloud gehostet werden. Docker, Helm und die Google Cloud CLI, die primäre Befehlszeile für Google Cloud, sind vorinstalliert.
- Lokale Shell
- Wenn Sie Ihre lokale Shell bevorzugen, müssen Sie Docker und die gcloud CLI in Ihrer Umgebung installieren.
Cloud Shell starten
So starten Sie Cloud Shell:
Rufen Sie die Google Cloud Console auf.
Klicken Sie auf die Schaltfläche Cloud Shell aktivieren: .
In einem Frame im unteren Teil der Console wird eine Cloud Shell-Sitzung geöffnet. Mit dieser Shell führen Sie
gcloud
-Befehle aus.Installieren Sie Helm 3.8.0 oder höher. In früheren Versionen von Helm ist die Unterstützung für Diagramme im OCI-Format eine experimentelle Funktion.
Führen Sie
helm version
aus, um Ihre Version zu prüfen.
Lokale Shell einrichten
Führen Sie die folgenden Schritte aus, um die gcloud CLI und Helm zu installieren:
Installieren Sie das gcloud-CLI. Führen Sie den Befehl
gcloud components update
aus, um eine vorhandene Installation zu aktualisieren.Installieren Sie Helm 3.8.0 oder höher. In früheren Versionen von Helm ist die Unterstützung für Diagramme im OCI-Format eine experimentelle Funktion.
Führen Sie
helm version
aus, um Ihre Version zu prüfen.
Repository erstellen
Erstellen Sie ein Docker-Repository zum Speichern des Beispieldiagramms für diese Kurzanleitung.
Console
Öffnen Sie in der Cloud Console die Seite Repositories.
Klicken Sie auf Repository erstellen.
Geben Sie
quickstart-helm-repo
als Repository-Namen an.Wählen Sie „Docker“ als Format aus.
Wählen Sie unter Standorttyp die Option Region und dann den Standort
us-central1
aus.Klicken Sie auf Erstellen.
Das Repository wird der Repository-Liste hinzugefügt.
gcloud
Führen Sie den folgenden Befehl aus, um ein neues Docker-Repository mit dem Namen
quickstart-helm-repo
am Speicherortus-central1
mit der Beschreibung „docker repository“ zu erstellen.gcloud artifacts repositories create quickstart-helm-repo --repository-format=docker \ --location=us-central1 --description="Helm repository"
Führen Sie den folgenden Befehl aus, um zu prüfen, ob Ihr Repository erstellt wurde:
gcloud artifacts repositories list
Weitere Informationen zu Artifact Registry-Befehlen erhalten Sie mit dem Befehl gcloud artifacts
.
Diagramm erstellen
Für diese Kurzanleitung erstellen Sie ein Beispieldiagramm mit dem Namen hello-chart
.
- Wechseln Sie zu einem Verzeichnis, in dem Sie das Diagramm erstellen möchten.
Führen Sie den folgenden Befehl aus, um das Diagramm zu erstellen:
helm create hello-chart
Helm erstellt ein Verzeichnis namens
hello-chart
mit einem Standardsatz von Diagrammdateien. Eine der Dateien ist Chart.yaml, die Informationen zum Diagramm enthält.Diagramm mit einem Archiv versehen
helm package hello-chart/
Helm erstellt ein Archiv mit dem Namen
hello-chart-0.1.0.tgz
unter Verwendung des Diagrammnamens und der Versionsnummer inChart.yaml
.
Beim Repository authentifizieren
Bevor Sie Images hochladen oder installieren können, muss sich Helm bei Artifact Registry authentifizieren.
Helm kann vorhandene Registry-Einstellungen in einer Docker-Konfigurationsdatei verwenden. Wenn Sie Docker noch nicht für die Verwendung mit Artifact Registry konfiguriert haben, können Sie sich für diese Kurzanleitung mit einem Zugriffstoken authentifizieren.
Weitere Informationen zur Authentifizierung finden Sie unter Authentifizierung für Helm einrichten.
Mit Docker-Konfiguration authentifizieren
Standardmäßig unterstützt Helm Registrierungseinstellungen in der Docker-Konfigurationsdatei config.json. Helm findet die Registrierungseinstellungen entweder am Standardspeicherort oder am in der Umgebungsvariable DOCKER_CONFIG angegebenen Speicherort.
Wenn Sie Docker zur Authentifizierung bei Artifact Registry konfiguriert haben, verwendet Helm Ihre vorhandene Konfiguration für Artifact Registry-Docker-Repositories.
Mit Zugriffstoken authentifizieren
So authentifizieren Sie sich mit einem Zugriffstoken:
Zugriffstoken als Anmeldedaten abrufen, wenn Sie sich mit Helm bei Artifact Registry authentifizieren
Linux/MacOS
Führen Sie dazu diesen Befehl aus:
gcloud auth print-access-token | helm registry login -u oauth2accesstoken \ --password-stdin https://us-central1-docker.pkg.dev
Windows
Führen Sie dazu diesen Befehl aus:
gcloud auth print-access-token ya29.8QEQIfY_... helm registry login -u oauth2accesstoken -p "ya29.8QEQIfY_..." \ https://us-central1-docker.pkg.dev/PROJECT-ID/REPOSITORY
Dabei gilt:
oauth2accesstoken
ist der Nutzername, der zur Authentifizierung mit einem Zugriffstoken verwendet werden soll.gcloud auth print-access-token
ist der gcloud-Befehl zum Abrufen des Zugriffstokens. Ihr Zugriffstoken ist das Passwort für die Authentifizierung.
Helm ist jetzt bei Artifact Registry authentifiziert. Sie können das Diagramm jetzt push in das Repository übertragen.
Diagramm per Push an Artifact Registry übertragen
Nachdem Sie Ihr Diagrammarchiv erstellt und beim Artifact Registry-Repository authentifiziert haben, können Sie das Diagramm in das Repository übertragen.
Führen Sie den folgenden Befehl aus, um das Diagramm zu übertragen:
helm push hello-chart-0.1.0.tgz oci://us-central1-docker.pkg.dev/PROJECT/quickstart-helm-repo
Ersetzen Sie PROJECT durch Ihre Google Cloud-Projekt-ID.
Helm verwendet Werte aus Chart.yaml
für das Image:
- Der Diagrammname ist der Image-Name:
hello-chart
- Die Diagrammversion ist das Bild-Tag:
0.1.0
Die Ausgabe von Helm sieht in etwa so aus:
Login Succeeded
Pushed: us-central1-docker.pkg.dev/my-project/quickstart-helm-repo/hello-chart:0.1.0
Digest: sha256:67a72...
Führen Sie den folgenden Befehl aus, um zu prüfen, ob das Diagramm jetzt im Repository gespeichert ist:
gcloud artifacts docker images list us-central1-docker.pkg.dev/PROJECT/quickstart-helm-repo
Die Befehlsausgabe sieht in etwa so aus:
Listing items under project my-project, location us-central1, repository quickstart-helm-repo.
IMAGE: us-central1-docker.pkg.dev/my-project/quickstart-helm-repo/hello-chart
DIGEST: sha256:67a72...
CREATE_TIME: 2021-11-08T22:59:57
UPDATE_TIME: 2021-11-08T22:59:57
Sie können jetzt einen Release mithilfe des in Artifact Registry gespeicherten Diagramms bereitstellen.
Diagramm bereitstellen
In Helm wird eine bereitgestellte Instanz einer Anwendung als Release bezeichnet. Nachdem Sie Ihr Repository der Helm-Konfiguration hinzugefügt haben, können Sie einen Release Ihres Diagramms bereitstellen.
Erstellen Sie mit dem folgenden Befehl einen Cluster mit dem Namen
chart-cluster
für Ihr Deployment:gcloud container clusters create --zone us-central1-a chart-cluster
Wenn der Cluster erstellt ist, gibt der Befehl eine Zusammenfassung ähnlich dem folgenden Beispiel zurück:
kubeconfig entry generated for chart-cluster. NAME: chart-cluster LOCATION: us-central1-a MASTER_VERSION: 1.20.10-gke.1600 MASTER_IP: 34.66.36.211 MACHINE_TYPE: e2-medium NODE_VERSION: 1.20.10-gke.1600 NUM_NODES: 3 STATUS: RUNNING
Rufen Sie die Clusteranmeldedaten ab, damit
kubectl
auf den Cluster zugreifen kann:gcloud container clusters get-credentials --zone us-central1-a chart-cluster
Führen Sie den folgenden Befehl aus, um einen Release von
hello-chart
mithilfe der lokal extrahierten Diagrammdateien bereitzustellen:helm install hello-chart oci://us-central1-docker.pkg.dev/PROJECT/quickstart-helm-repo/hello-chart --version 0.1.0
Der Befehl gibt eine Zusammenfassung der Bereitstellung zurück:
NAME: hello-chart LAST DEPLOYED: Mon Nov 8 23:15:13 2021 NAMESPACE: default STATUS: deployed REVISION: 1
Sie haben mithilfe des Diagramms, das Sie erstellt und an Artifact Registry übertragen haben, erfolgreich einen Release bereitgestellt.
Bereinigen
Mit den folgenden Schritten vermeiden Sie, dass Ihrem Google Cloud-Konto die auf dieser Seite verwendeten Ressourcen in Rechnung gestellt werden:
Löschen Sie das erstellte Repository mit dem folgenden Befehl:
gcloud artifacts repositories delete quickstart-helm-repo --location=us-central1
Löschen Sie den von Ihnen erstellten Cluster:
gcloud container clusters delete --zone=us-central1-a chart-cluster
Nächste Schritte
- Weitere Informationen zur Arbeit mit Diagrammen
- Weitere Informationen zu Helm
- Lesen Sie unser Infomaterial zu DevOps und informieren Sie sich über unser Forschungsprogramm.