Helm-Diagramme in Artifact Registry speichern
Helm ist der Paketmanager für Kubernetes. Dabei werden Diagramme verwendet, die eine Reihe von Kubernetes-Ressourcen definieren, die bereitgestellt werden sollen.
In dieser Kurzanleitung werden folgende Verfahren erläutert:
- Privates Repository in Artifact Registry erstellen
- Beispieldiagramm erstellen
- Beim Repository authentifizieren
- Diagramm in das Repository hochladen
- Diagramm bereitstellen
Hinweise
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry, Google Kubernetes Engine APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry, Google Kubernetes Engine APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. - Cloud Shell
- Cloud Shell ist eine Shell-Umgebung für die Verwaltung von Ressourcen, die in Google Cloudgehostet 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 in Ihrer Umgebung Docker und die gcloud CLI installieren.
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 von Diagrammen im OCI-Format eine experimentelle Funktion.
Führen Sie
helm versionaus, um Ihre Version zu prüfen.Installieren Sie das gcloud-CLI. Führen Sie den Befehl
gcloud components updateaus, 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 von Diagrammen im OCI-Format eine experimentelle Funktion.
Führen Sie
helm versionaus, um Ihre Version zu prüfen.Öffnen Sie in der Google Cloud Console die Seite Repositories.
Klicken Sie auf Repository erstellen.
Geben Sie
quickstart-helm-repoals Repository-Namen an.Wählen Sie „Docker“ als Format aus.
Wählen Sie unter Standorttyp die Option Region und dann den Standort
us-west1aus.Klicken Sie auf Erstellen.
Führen Sie den folgenden Befehl aus, um ein neues Docker-Repository mit dem Namen
quickstart-helm-repoam Speicherortus-west1mit der Beschreibung „docker repository“ zu erstellen.gcloud artifacts repositories create quickstart-helm-repo --repository-format=docker \ --location=us-west1 --description="Helm repository"Führen Sie den folgenden Befehl aus, um zu prüfen, ob Ihr Repository erstellt wurde:
gcloud artifacts repositories list- Wechseln Sie in das Verzeichnis, in dem Sie das Diagramm erstellen möchten.
Führen Sie den folgenden Befehl aus, um das Diagramm zu erstellen:
helm create hello-chartHelm erstellt ein Verzeichnis namens
hello-chartmit einem Standardsatz von Diagrammdateien. Eine der Dateien ist Chart.yaml, die Informationen zum Diagramm enthält.Verpacken Sie das Diagramm in einem Archiv.
helm package hello-chart/Helm erstellt ein Archiv mit dem Namen
hello-chart-0.1.0.tgz, wobei der Diagrammname und die Versionsnummer inChart.yamlverwendet werden.Rufen Sie zur Authentifizierung bei Artifact Registry mit Helm ein Zugriffstoken ab.
Linux/macOS
Führen Sie dazu diesen Befehl aus:
gcloud auth print-access-token | helm registry login -u oauth2accesstoken \ --password-stdin https://us-west1-docker.pkg.devWindows
Führen Sie dazu diesen Befehl aus:
gcloud auth print-access-token ya29.8QEQIfY_... helm registry login -u oauth2accesstoken -p "ya29.8QEQIfY_..." \ https://us-west1-docker.pkg.dev/PROJECT-ID/REPOSITORYDabei gilt:
oauth2accesstokenist der Nutzername, der zur Authentifizierung mit einem Zugriffstoken verwendet werden soll.gcloud auth print-access-tokenist der gcloud-Befehl zum Abrufen des Zugriffstokens. Ihr Zugriffstoken ist das Passwort für die Authentifizierung.
- Der Diagrammname ist der Bildname:
hello-chart - Die Diagrammversion ist das Image-Tag:
0.1.0 Erstellen Sie mit dem folgenden Befehl einen Cluster namens
chart-clusterfür Ihre Bereitstellung:gcloud container clusters create --zone us-west1-a chart-clusterWenn der Cluster erstellt wurde, gibt der Befehl eine Zusammenfassung wie im folgenden Beispiel zurück:
kubeconfig entry generated for chart-cluster. NAME: chart-cluster LOCATION: us-west1-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: RUNNINGRufen Sie die Clusteranmeldedaten ab, damit
kubectlauf den Cluster zugreifen kann:gcloud container clusters get-credentials --zone us-west1-a chart-clusterFühren Sie den folgenden Befehl aus, um eine Version von
hello-chartmit den lokal extrahierten Diagrammdateien bereitzustellen:helm install hello-chart oci://us-west1-docker.pkg.dev/PROJECT/quickstart-helm-repo/hello-chart --version 0.1.0Der 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: 1Löschen Sie das von Ihnen erstellte Repository mit dem folgenden Befehl:
gcloud artifacts repositories delete quickstart-helm-repo --location=us-west1Löschen Sie den von Ihnen erstellten Cluster:
gcloud container clusters delete --zone=us-west1-a chart-cluster- Weitere Informationen zum Arbeiten mit Diagrammen
- Weitere Informationen zu Helm
- Lesen Sie unsere Ressourcen zu DevOps und gehen Sie unser Forschungsprogramm durch.
Shell auswählen
Sie können diese Kurzanleitung entweder in Cloud Shell oder in Ihrer lokalen Shell ausführen.
Cloud Shell starten
So starten Sie Cloud Shell:
Lokale Shell einrichten
Führen Sie die folgenden Schritte aus, um die gcloud CLI und Helm zu installieren:
Repository erstellen
Erstellen Sie ein Docker-Repository zum Speichern des Beispiel-Charts für diese Kurzanleitung.
Console
Das Repository wird der Repository-Liste hinzugefügt.
gcloud
Weitere Informationen zu Artifact Registry-Befehlen erhalten Sie mit dem Befehl gcloud artifacts.
Diagramm erstellen
In dieser Kurzanleitung erstellen Sie ein Beispiel-Diagramm mit dem Namen hello-chart.
Beim Repository authentifizieren
Bevor Sie Images per Push übertragen oder installieren können, muss Helm sich 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 Ihrer Docker-Konfiguration authentifizieren
Standardmäßig unterstützt Helm Registry-Einstellungen in der Docker-Konfigurationsdatei config.json. Helm findet Registrierungseinstellungen entweder am Standardspeicherort oder am Speicherort, der durch die Umgebungsvariable DOCKER_CONFIG angegeben wird.
Wenn Sie Docker mit einem Credential Helper konfiguriert haben, um sich bei Artifact Registry zu authentifizieren, verwendet Helm Ihre vorhandene Konfiguration für Artifact Registry-Docker-Repositories.
Mit einem Zugriffstoken authentifizieren
So authentifizieren Sie sich mit einem Zugriffstoken:
Helm ist jetzt bei Artifact Registry authentifiziert. Sie können das Diagramm jetzt in das Repository hochladen.
Chart in Artifact Registry hochladen
Nachdem Sie das Diagrammarchiv erstellt und sich beim Artifact Registry-Repository authentifiziert haben, können Sie das Diagramm in das Repository hochladen.
Führen Sie den folgenden Befehl aus, um das Diagramm zu übertragen:
helm push hello-chart-0.1.0.tgz oci://us-west1-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:
Helm gibt eine Ausgabe ähnlich dem folgenden Beispiel zurück:
Login Succeeded
Pushed: us-west1-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-west1-docker.pkg.dev/PROJECT/quickstart-helm-repo
Die Befehlsausgabe sieht dann ungefähr so aus:
Listing items under project my-project, location us-west1, repository quickstart-helm-repo.
IMAGE: us-west1-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 eine Release mithilfe des in Artifact Registry gespeicherten Diagramms bereitstellen.
Diagramm bereitstellen
In Helm wird eine bereitgestellte Instanz Ihrer Anwendung als Release bezeichnet. Nachdem Sie das Repository der Helm-Konfiguration hinzugefügt haben, können Sie eine Release Ihres Diagramms bereitstellen.
Sie haben mit dem Chart, das Sie erstellt und in Artifact Registry übertragen haben, erfolgreich ein Release bereitgestellt.
Bereinigen
Mit den folgenden Schritten vermeiden Sie, dass Ihrem Google Cloud -Konto die auf dieser Seite verwendeten Ressourcen in Rechnung gestellt werden: