Helm-Diagramme verwalten

Auf dieser Seite wird erläutert, wie Sie als OCI-Container-Images gespeicherte Helm-Diagramme verwalten, einschließlich Hochladen, Hochladen (Herunterladen), Auflisten, Auflisten, Taggen und Löschen von Diagrammen.

Hinweis

  1. Wenn das Ziel-Repository nicht vorhanden ist, erstellen Sie ein neues Repository. Wählen Sie Docker als Repository-Format aus.
  2. Prüfen Sie, ob Sie die erforderlichen Berechtigungen für das Repository haben.
  3. (Optional) Konfigurieren Sie die Standardeinstellungen für gcloud-Befehle.
  4. Installieren Sie Helm 3, wenn es noch nicht installiert ist.

  5. Aktivieren Sie die experimentelle Unterstützung für Helm für OCI-Images mit der Variable HELM_EXPERIMENTAL_OCI. Fügen Sie in ~/.bashrc (oder ~/.bash_profile unter macOS oder am Speicherort für Umgebungsvariablen in der Shell) die folgende Zeile hinzu:

    export HELM_EXPERIMENTAL_OCI=1
    
  6. Führen Sie den folgenden Befehl aus, um die aktualisierte Datei .bashrc oder .bash_profile zu laden:

    source ~/.bashrc
    

Diagramm erstellen oder abrufen

Diese Dokumentation konzentriert sich auf die Verwaltung von Diagrammbildern und setzt voraus, dass Sie über vorhandene Diagramme verfügen oder mit dem Erstellen von Diagrammen vertraut sind. Weitere Informationen zum Erstellen von Diagrammen oder zum Abrufen öffentlich verfügbarer Diagramme in Artifact Hub finden Sie in den folgenden Informationen in der Helm-Dokumentation.

Diagramm im OCI-Format speichern

Bevor Sie ein Diagramm in die Artifact Registry verschieben können, müssen Sie es als Container-Image speichern.

  1. Wechseln Sie in das Verzeichnis, das Ihr Diagramm enthält.

  2. Speichern Sie das Diagramm als OCI-Image unter Verwendung des vollständigen Pfads zum Image-Speicherort im Ziel-Repository.

    helm chart save CHART-PATH LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE:TAG
    

    Ersetzen Sie die folgenden Werte:

    • CHART-PATH ist der Pfad, der die Datei Chart.yaml enthält.
    • LOCATION ist der regionale oder multiregionale Speicherort für das Repository.
    • PROJECT ist Ihre Google Cloud-Projekt-ID. Wenn die Projekt-ID einen Doppelpunkt (:) enthält, finden Sie weitere Informationen unter Auf Domains beschränkte Projekte.
    • REPOSITORY ist der Name des Repositorys, in dem das Image gespeichert ist.
    • IMAGE ist der Name des Images im Repository.
    • TAG ist das Tag für die Image-Version.

    Wenn Sie kein Tag mit :TAG angeben, kennzeichnet Helm das Image mit der Standarddiagrammversionsnummer in Ihrer CHART-PATH/Chart.yaml-Datei. Wenn Sie diese Versionsnummer immer dann ändern, wenn Sie Änderungen an einem Diagramm vornehmen, können Sie die Metadaten in Chart.yaml mit den Container-Image-Tags synchronisieren.

    Betrachten Sie dieses Beispiel:

    helm chart save my-chart/ us-central1-docker.pkg.dev/my-project/my-repo/my-chart
    

    Wenn die Diagrammversion 0.1.0 lautet, verwendet Helm diese Versionsnummer als Tag. Die Ausgabe des Befehls "save" sieht so aus:

    ref:     us-central1-docker.pkg.dev/my-project/my-repo/my-chart:0.1.0
    digest:  decd0b41c389fd46c586c292eaf05f446fe05dc56248f409bef2c123ab7b7032
    size:    3.5 KiB
    name:    my-chart
    version: 0.1.0
    0.1.0: saved
    
  3. Listen Sie Diagramme im lokalen Cache auf, um zu bestätigen, dass das Diagramm lokal gespeichert wird.

    helm chart list
    

    Die Liste enthält Ihr gespeichertes Diagramm.

    REF                                                             NAME            VERSION DIGEST  SIZE    CREATED
    us-central1-docker.pkg.dev/my-project/my-repo...   my-chart     0.1.0   decd0b4 3.5 KiB 2 minutes
    

Sie können jetzt das Image Ihres Diagramms in die Artifact Registry verschieben.

Diagramm übertragen

Nachdem Sie das Diagramm als Container-Image gespeichert haben, können Sie es in Artifact Registry verschieben.

Führen Sie den folgenden Befehl aus, um das Diagramm per Push zu übertragen:

helm chart push LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE:TAG

Ersetzen Sie die folgenden Werte:

  • LOCATION ist der regionale oder multiregionale Speicherort für das Repository.
  • PROJECT ist Ihre Google Cloud-Projekt-ID. Wenn die Projekt-ID einen Doppelpunkt (:) enthält, finden Sie weitere Informationen unter Auf Domains beschränkte Projekte.
  • REPOSITORY ist der Name des Repositorys, in dem das Image gespeichert ist.
  • IMAGE ist der Name des Images im Repository.
  • TAG ist das Tag für die Image-Version.

Prüfen Sie mit dem folgenden Befehl, ob das Diagramm jetzt im Repository gespeichert ist:

gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT/REPOSITORY

Wenn Sie eine Kopie des Images in Ihrem lokalen Helm-Cache nicht mehr benötigen, können Sie die lokale Kopie löschen.

Diagramme abrufen

Sie können einen Release nicht direkt aus einem als Container-Image gespeicherten Diagramm bereitstellen. Um das Diagramm zu verwenden, müssen Sie das Image abrufen, die Diagrammdateien extrahieren und dann mit den extrahierten Dateien die Bereitstellung vornehmen.

  1. Rufen Sie das Image des Diagramms mit dem folgenden Befehl aus Artifact Registry ab:

    helm chart pull LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE:TAG
    

    Ersetzen Sie die folgenden Werte:

    • LOCATION ist der regionale oder multiregionale Speicherort für das Repository.
    • PROJECT ist Ihre Google Cloud-Projekt-ID. Wenn die Projekt-ID einen Doppelpunkt (:) enthält, finden Sie weitere Informationen unter Auf Domains beschränkte Projekte.
    • REPOSITORY ist der Name des Repositorys, in dem das Image gespeichert ist.
    • IMAGE ist der Name des Images im Repository.
    • TAG ist das Tag für die Image-Version.
  2. Führen Sie den folgenden Befehl aus, um die Diagrammdateien aus dem Image zu extrahieren:

    helm chart export LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE:TAG
    

Sie können jetzt mit den extrahierten Diagrammdateien einen Release mit dem Befehl helm install installieren.

Im folgenden Beispiel wird ein Release mit dem Namen release1 mithilfe eines Diagramms im Verzeichnis my-chart installiert.

helm install release1 ./my-chart

Diagramme auflisten

Sie können Diagramme mithilfe der Google Cloud Console oder der Befehlszeile auflisten. Wenn Sie Container-Images und -Diagramme im selben Docker-Repository speichern, werden beide Artefaktetypen in der Liste angezeigt.

Console

So zeigen Sie Images in einem Repository an:

  1. Öffnen Sie in der Cloud Console die Seite Repositories.

    Zur Seite „Repositories“

  2. Klicken Sie auf das Repository, das das Diagramm enthält.

  3. Klicken Sie auf ein Image, um dessen Versionen anzuzeigen.

gcloud

So listen Sie alle Images im Standardprojekt, im Repository und am Standort auf, wenn die Standardwerte konfiguriert sind:

gcloud artifacts docker images list [--include-tags]

Führen Sie den folgenden Befehl aus, um Images in einem Repository an einem bestimmten Speicherort aufzulisten:

gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT/REPOSITORY \
[--include-tags]

Führen Sie den folgenden Befehl aus, um alle Digests und Tags für ein bestimmtes Image aufzulisten:

gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE \
[--include-tags]

Ersetzen Sie die folgenden Werte:

  • LOCATION ist der regionale oder multiregionale Speicherort für das Repository.
  • PROJECT ist Ihre Google Cloud-Projekt-ID. Wenn die Projekt-ID einen Doppelpunkt (:) enthält, finden Sie weitere Informationen unter Auf Domains beschränkte Projekte.
  • REPOSITORY ist der Name des Repositorys, in dem das Image gespeichert ist.
  • IMAGE ist der Name des Images im Repository.
  • --include-tags zeigt alle Image-Versionen einschließlich Digests und Tags an. Wenn dieses Flag nicht angegeben wird, enthält die zurückgegebene Liste nur übergeordnete Container-Images.

Angenommen, Sie haben ein Image mit folgenden Merkmalen:

  • Speicherort des Repositorys: us
  • Repository-Name: my-repo
  • Projekt-ID: my-project
  • Image-Name: my-image

Der vollständige Repository-Name lautet:

us-docker.pkg.dev/my-project/my-repo

Der vollständige Image-Name lautet:

us-docker.pkg.dev/my-project/my-repo/my-image

Weitere Informationen zum Image-Namensformat finden Sie unter Repository- und Image-Namen.

Tags hinzufügen und entfernen

Wenn Sie ein Diagramm als OCI-Image packen, ohne ein Tag anzugeben, fügt Helm automatisch ein Tag mit der Diagrammversionsnummer in Chart.yaml hinzu.

Sie können in der Artifact Registry mithilfe der Google Cloud Console oder der Befehlszeile zusätzliche Tags hinzufügen und löschen.

Tags hinzufügen

In einem Repository sind Tags für eine Image-Version einmalig. Wenn Sie also mehrere Versionen eines Images haben, gilt jedes Tag nur für eine dieser Versionen. Falls Sie einem Image ein Tag hinzufügen, das bereits in Verwendung ist, wird das Tag von der ursprünglichen Version zur neu getaggten Version verschoben.

Console

So taggen Sie ein Image in einem Repository:

  1. Öffnen Sie in der Cloud Console die Seite Repositories.

    Zur Seite „Repositories“

  2. Klicken Sie auf das Image, um die Versionen des Images aufzurufen.

  3. Wählen Sie die Image-Version aus, die getaggt werden soll.

  4. Klicken Sie in der Zeile der ausgewählten Version auf Weitere Aktionen (Weitere Aktionen) und dann auf Tags bearbeiten.

  5. Geben Sie neue Tags in das Feld ein und klicken Sie danach auf SPEICHERN.

gcloud

Wenn Sie Images in einem Repository taggen möchten, geben Sie die Image-Version mithilfe des Image-Digests oder des Tags an und geben Sie dann das Tag an, das hinzugefügt werden soll. Führen Sie einen der folgenden Befehle aus:

gcloud artifacts docker tags add IMAGE-VERSION TAG

Wo

  • IMAGE-VERSION ist der vollständige Name der Image-Version, die getaggt werden soll, unter Verwendung des Image-Digests oder eines vorhandenes Tags für die Image-Version.
  • TAG ist der vollständige Name des Tags, das Sie hinzufügen möchten.

Angenommen, Sie haben ein Image mit folgenden Merkmalen:

  • Speicherort des Repositorys: us
  • Repository-Name: my-repo
  • Projekt-ID: my-project
  • Image-Name: my-image
  • Vorhandenes Tag: iteration6-final
  • Tag zum Hinzufügen: release-candidate

Um der Version des Images mit dem Tag iteration6-final das Tag release-candidate hinzuzufügen, führen Sie den folgenden Befehl aus:

gcloud artifacts docker tags add \
us-docker.pkg.dev/my-project/my-repo/my-image:iteration6-final \
us-docker.pkg.dev/my-project/my-repo/my-image:release-candidate

Weitere Informationen zum Format des Image-Namens sowie zur Handhabung von auf Domains beschränkten Projekten finden Sie unter Repository- und Image-Namen.

Tags löschen

Sie können die Google Cloud Console oder die Befehlszeile verwenden, um ein Tag von einem Image zu entfernen.

Console

  1. Öffnen Sie in der Cloud Console die Seite Repositories.

    Zur Seite „Repositories“

  2. Klicken Sie auf das Image, um die Versionen des Images aufzurufen.

  3. Wählen Sie die Image-Version aus, dessen Tag entfernt werden soll.

  4. Klicken Sie in der Zeile der ausgewählten Version auf Weitere Aktionen (Weitere Aktionen) und dann auf Tags bearbeiten.

  5. Löschen Sie das Tag und klicken Sie danach auf SPEICHERN.

gcloud

Um ein Tag zu löschen und aus dem Image zu entfernen, führen Sie folgenden Befehl aus:

 gcloud artifacts docker tags delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE:TAG

Wo

  • LOCATION ist der regionale oder multiregionale Speicherort für das Repository.
  • PROJECT ist Ihre Google Cloud-Projekt-ID. Wenn die Projekt-ID einen Doppelpunkt (:) enthält, finden Sie weitere Informationen unter Auf Domains beschränkte Projekte.
  • REPOSITORY ist der Name des Repositorys, in dem das Image gespeichert ist.
  • IMAGE ist der Name des Images im Repository.
  • TAG ist das Tag für die Version, die Sie löschen möchten.

Bilder löschen

Wenn Sie Diagrammdateien lokal als Bild mit dem Befehl helm chart save speichern, speichert Helm das Image in seinem lokalen Cache. Sobald das Image in Artifact Registry gespeichert ist, können Sie Ihre lokale Kopie des Images aus dem Cache löschen.

Sie können in einem Artifact Registry-Repository ein gesamtes Container-Image löschen oder eine bestimmte Image-Version löschen, die mit einem Tag oder Digest verknüpft ist. Das Löschen eines Images kann nicht rückgängig gemacht werden.

Führen Sie den folgenden Befehl aus, um ein Image im lokalen Helm-Image-Cache zu löschen.

helm chart remove LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE:TAG

Ersetzen Sie die folgenden Werte:

  • LOCATION ist der regionale oder multiregionale Speicherort für das Repository.
  • PROJECT ist Ihre Google Cloud-Projekt-ID.
  • REPOSITORY ist der Name des Repositorys, in dem das Image gespeichert ist.
  • IMAGE ist der Name des Images im Repository.
  • TAG ist das Tag für die Image-Version.

So löschen Sie ein in Artifact Registry gespeichertes Image:

Console

  1. Öffnen Sie in der Cloud Console die Seite Repositories.

    Zur Seite „Repositories“

  2. Klicken Sie auf den Image-Namen, um die Versionen des Images aufzurufen.

  3. Wählen Sie die Versionen aus, die Sie löschen möchten.

  4. Klicken Sie auf Löschen.

  5. Klicken Sie im Bestätigungsdialogfeld auf Löschen.

gcloud

Um ein Image und alle zugehörigen Tags zu löschen, führen Sie folgenden Befehl aus:

gcloud artifacts docker images delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE --delete-tags

Um eine bestimmte Image-Version zu löschen, verwenden Sie einen der folgenden Befehle:

gcloud artifacts docker images delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE:TAG [--delete-tags]

oder

gcloud artifacts docker images delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE@IMAGE-DIGEST [--delete-tags]

Wo

  • LOCATION ist der regionale oder multiregionale Speicherort für das Repository.
  • PROJECT ist Ihre Google Cloud-Projekt-ID. Wenn die Projekt-ID einen Doppelpunkt (:) enthält, finden Sie weitere Informationen unter Auf Domains beschränkte Projekte.
  • REPOSITORY ist der Name des Repositorys, in dem das Image gespeichert ist.
  • IMAGE ist der Name des Images im Repository.
  • TAG ist das Tag für die Version, die Sie löschen möchten. Wenn mehrere Tags mit derselben Image-Version verknüpft sind, müssen Sie --delete-tags angeben, damit die Image-Version ohne vorheriges Entfernen der Tags gelöscht wird.
  • IMAGE-DIGEST ist der sha256-Hash-Wert für die Version, die Sie löschen möchten. Wenn ein Tag mit dem Image-Digest verknüpft ist, müssen Sie --delete-tags angeben, damit die Image-Version ohne vorheriges Entfernen des Tags gelöscht wird.
  • Mit --delete-tags werden alle Tags entfernt, die auf die Image-Version angewendet werden. Mit diesem Flag können Sie das Löschen einer Image-Version erzwingen, wenn Folgendes gilt:
    • Sie haben ein Tag angegeben, aber mit der Image-Version sind weitere Tags verknüpft.
    • Sie haben einen Image-Digest mit mindestens einem Tag angegeben.

Nächste Schritte