Memorizzare i grafici Helm in Artifact Registry

Helm è il gestore di pacchetti per Kubernetes. Utilizza i grafici che definiscono un insieme di risorse Kubernetes da eseguire.

Questa guida rapida illustra come:

  • Creare un repository privato in Artifact Registry
  • Creare un grafico di esempio
  • Esegui l'autenticazione nel repository
  • Esegui il push del grafico nel repository
  • Esegui il deployment del grafico

Prima di iniziare

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Artifact Registry, Google Kubernetes Engine APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Artifact Registry, Google Kubernetes Engine APIs.

    Enable the APIs

Scegli una shell

Per completare questa guida rapida, utilizza Cloud Shell o la tua shell locale.

Cloud Shell
Cloud Shell è un ambiente shell per la gestione delle risorse ospitate su Google Cloud. È preinstallato con Docker, Helm e Google Cloud CLI, l'interfaccia a riga di comando principale per Google Cloud.
Shell locale
Se preferisci utilizzare la shell locale, devi installare Docker e gcloud CLI nel tuo ambiente.

Avviare Cloud Shell

Per avviare Cloud Shell, segui questi passaggi:

  1. Vai alla console Google Cloud.

    Console Google Cloud

  2. Fai clic sul pulsante Attiva Cloud Shell:  .

    Una sessione di Cloud Shell si apre in un frame nella parte inferiore della console. Utilizza questa shell per eseguire i comandi gcloud.

  3. Installa Helm 3.8.0 o versioni successive. Nelle versioni precedenti di Helm, il supporto dei grafici in formato OCI è una funzionalità sperimentale.

    Esegui helm version per verificare la versione.

Configurazione di una shell locale

Per installare gcloud CLI e Helm, svolgi i seguenti passaggi:

  1. Installa la gcloud CLI. Per aggiornare un'installazione esistente, esegui il comando gcloud components update.

  2. Installa Helm 3.8.0 o versioni successive. Nelle versioni precedenti di Helm, il supporto dei grafici in formato OCI è una funzionalità sperimentale.

    Esegui helm version per verificare la versione.

Crea un repository

Crea un repository Docker per archiviare il grafico di esempio per questa guida rapida.

Console

  1. Apri la pagina Repositories (Repositoi) nella console Google Cloud.

    Apri la pagina Repositori

  2. Fai clic su Crea repository.

  3. Specifica quickstart-helm-repo come nome del repository.

  4. Scegli Docker come formato.

  5. In Tipo di località, seleziona Regione, quindi scegli la localitàus-west1.

  6. Fai clic su Crea.

Il repository viene aggiunto all'elenco dei repository.

gcloud

  1. Esegui il comando seguente per creare un nuovo repository Docker denominato quickstart-helm-repo nella località us-west1 con la descrizione "docker repository".

    gcloud artifacts repositories create quickstart-helm-repo --repository-format=docker \
    --location=us-west1 --description="Helm repository"
    
  2. Esegui questo comando per verificare che il repository sia stato creato.

    gcloud artifacts repositories list
    

Per ulteriori informazioni sui comandi di Artifact Registry, esegui il comando gcloud artifacts.

Creare un grafico

Per questa guida rapida, creerai un grafico di esempio denominato hello-chart.

  1. Passa a una directory in cui vuoi creare il grafico.
  2. Esegui il comando seguente per creare il grafico:

    helm create hello-chart
    

    Helm crea una directory denominata hello-chart con un insieme predefinito di file di grafici. Uno dei file è Chart.yaml, che include informazioni sul grafico.

  3. Impacchetta il grafico in un archivio.

    helm package hello-chart/
    

    Helm crea un archivio denominato hello-chart-0.1.0.tgz utilizzando il nome del grafico e il numero di versione in Chart.yaml.

Esegui l'autenticazione nel repository

Prima di poter eseguire il push o installare le immagini, Helm deve autenticarsi ad Artifact Registry.

Helm può utilizzare le impostazioni del registry esistenti in un file di configurazione Docker. Se non hai ancora configurato Docker per l'utilizzo con Artifact Registry, puoi eseguire l'autenticazione con un token di accesso per questa guida rapida.

Per ulteriori informazioni sull'autenticazione, consulta Configurare l'autenticazione per Helm.

Esegui l'autenticazione con la configurazione Docker

Per impostazione predefinita, Helm supporta le impostazioni del registry nel file di configurazione Docker config.json. Helm trova le impostazioni del registry nella posizione predefinita o in quella specificata dalla variabile di ambiente DOCKER_CONFIG.

Se hai configurato Docker con un assistente alle credenziali per eseguire l'autenticazione con Artifact Registry, Helm utilizza la configurazione esistente per i repository Docker di Artifact Registry.

Autenticazione con un token di accesso

Per autenticarsi con un token di accesso:

  1. Ottieni un token di accesso come credenziali quando esegui l'autenticazione in Artifact Registry con Helm.

    Linux / macOS

    Esegui questo comando:

    gcloud auth print-access-token | helm registry login -u oauth2accesstoken \
    --password-stdin https://us-west1-docker.pkg.dev
    

    Windows

    Esegui questo comando:

    gcloud auth print-access-token
    ya29.8QEQIfY_...
    
    helm registry login -u oauth2accesstoken -p "ya29.8QEQIfY_..." \
    https://us-west1-docker.pkg.dev/PROJECT-ID/REPOSITORY
    

    Dove

    • oauth2accesstoken è il nome utente da utilizzare per l'autenticazione con un token di accesso.
    • gcloud auth print-access-token è il comando gcloud per ottenere il token di accesso. Il token di accesso è la password per l'autenticazione.

Helm è ora autenticato con Artifact Registry. Ora puoi pushare il grafico nel repository.

Esegui il push del grafico in Artifact Registry

Dopo aver creato l'archivio dei grafici e aver eseguito l'autenticazione nel repository Artifact Registry, puoi eseguire il push del grafico nel repository.

Per eseguire il push del grafico, esegui il seguente comando:

helm push hello-chart-0.1.0.tgz oci://us-west1-docker.pkg.dev/PROJECT/quickstart-helm-repo

Sostituisci PROJECT con il tuo Google Cloud ID progetto.

Helm utilizza i valori di Chart.yaml per l'immagine:

  • Il nome del grafico corrisponde al nome dell'immagine: hello-chart
  • La versione del grafico è il tag immagine: 0.1.0

Helm restituisce un output simile al seguente esempio:

Login Succeeded
Pushed: us-west1-docker.pkg.dev/my-project/quickstart-helm-repo/hello-chart:0.1.0
Digest: sha256:67a72...

Esegui questo comando per verificare che il grafico sia ora archiviato nel repository:

gcloud artifacts docker images list us-west1-docker.pkg.dev/PROJECT/quickstart-helm-repo

L'output del comando è simile al seguente esempio:

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

Ora puoi eseguire il deployment di una release utilizzando il grafico archiviato in Artifact Registry.

Esegui il deployment del grafico

In Helm, un'istanza di applicazione di cui è stato eseguito il deployment è chiamata release. Dopo aver aggiunto il repository alla configurazione di Helm, puoi eseguire il deployment di una release del grafico.

  1. Crea un cluster denominato chart-cluster per il tuo deployment con il comando:

    gcloud container clusters create --zone us-west1-a chart-cluster
    

    Quando il cluster viene creato, il comando restituisce un riepilogo simile al seguente esempio:

    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: RUNNING
    
  2. Recupera le credenziali del cluster in modo che kubectl possa accedervi:

    gcloud container clusters get-credentials --zone us-west1-a chart-cluster
    
  3. Esegui il seguente comando per eseguire il deployment di una release di hello-chart utilizzando i file dei grafici estratti localmente:

    helm install hello-chart oci://us-west1-docker.pkg.dev/PROJECT/quickstart-helm-repo/hello-chart --version 0.1.0
    

    Il comando restituisce un riepilogo del deployment:

    NAME: hello-chart
    LAST DEPLOYED: Mon Nov  8 23:15:13 2021
    NAMESPACE: default
    STATUS: deployed
    REVISION: 1
    

Hai eseguito il deployment di una release utilizzando il grafico che hai creato e pushato ad Artifact Registry.

Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate su questa pagina, segui questi passaggi.

  1. Elimina il repository che hai creato con il seguente comando:

    gcloud artifacts repositories delete quickstart-helm-repo --location=us-west1
    
  2. Elimina il cluster che hai creato:

    gcloud container clusters delete --zone=us-west1-a chart-cluster
    

Passaggi successivi