Archiviare i grafici Helm in Artifact Registry
Helm è il gestore di pacchetti per Kubernetes. Utilizza grafici che definiscono un insieme di risorse Kubernetes da eseguire il deployment.
Questa guida rapida mostra come:
- Creare un repository privato in Artifact Registry
- Creare un grafico di esempio
- Eseguire l'autenticazione nel repository
- Eseguire il push del grafico nel repository
- Eseguire il deployment del grafico
Prima di iniziare
- Accedi al tuo Google Cloud account. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
-
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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
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.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per creare e gestire i grafici Helm nei repository di pacchetti Docker di Artifact Registry, chiedi all'amministratore di concederti il ruolo IAM Artifact Registry Administrator (roles/artifactregistry.admin) nel tuo progetto.
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Scegli una shell
Per completare questa guida rapida, utilizza Cloud Shell o la shell locale.
- Cloud Shell
- Cloud Shell è un ambiente shell per la gestione delle risorse ospitate su Google Cloud. È preinstallato con Docker, Helm e la 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:
Vai alla Google Cloud console.
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.Installa Helm 3.8.0 o versioni successive. Nelle versioni precedenti di Helm, il supporto per i grafici in formato OCI è una funzionalità sperimentale.
Esegui
helm versionper verificare la versione.
Configurare una shell locale
Per installare gcloud CLI e Helm, segui questi passaggi:
Installa la gcloud CLI. Per aggiornare un'installazione esistente, esegui il comando
gcloud components update.Installa Helm 3.8.0 o versioni successive. Nelle versioni precedenti di Helm, il supporto per i grafici in formato OCI è una funzionalità sperimentale.
Esegui
helm versionper verificare la versione.
Crea un repository
Crea un repository Docker per archiviare il grafico di esempio per questa guida rapida.
Console
Apri la pagina Repository nella Google Cloud console.
Fai clic su Crea repository.
Specifica
quickstart-helm-repocome nome del repository.Scegli Docker come formato.
In Tipo di località, seleziona Regione, quindi scegli la località
us-west1.Fai clic su Crea.
Il repository viene aggiunto all'elenco dei repository.
gcloud
Esegui il comando seguente per creare un nuovo repository Docker denominato
quickstart-helm-reponella localitàus-west1con la descrizione "docker repository".gcloud artifacts repositories create quickstart-helm-repo --repository-format=docker \ --location=us-west1 --description="Helm repository"Esegui il comando seguente 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.
Crea un grafico
Per questa guida rapida, creerai un grafico di esempio denominato hello-chart.
- Passa a una directory in cui vuoi creare il grafico.
Esegui il comando seguente per creare il grafico:
helm create hello-chartHelm crea una directory denominata
hello-chartcon un insieme predefinito di file di grafici. Uno dei file è Chart.yaml, che include informazioni sul grafico.Pacchettizza il grafico in un archivio.
helm package hello-chart/Helm crea un archivio denominato
hello-chart-0.1.0.tgzutilizzando il nome e il numero di versione del grafico inChart.yaml.
Esegui l'autenticazione nel repository
Prima di poter eseguire il push o l'installazione delle immagini, Helm deve eseguire l'autenticazione in Artifact Registry.
Helm può utilizzare le impostazioni del registro 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 saperne di più sull'autenticazione, consulta Configurare l'autenticazione per Helm per altre informazioni.
Esegui l'autenticazione con la configurazione Docker
Per impostazione predefinita, Helm supporta le impostazioni del registro nel file di configurazione Docker config.json. Helm trova le impostazioni del registro in nella località predefinita o nella località specificata dalla DOCKER_CONFIG variabile di ambiente.
Se hai configurato Docker con un helper delle credenziali per l'autenticazione con Artifact Registry, Helm utilizza la configurazione esistente per i repository Docker di Artifact Registry.
Esegui l'autenticazione con un token di accesso
Per eseguire l'autenticazione con un token di accesso:
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.devWindows
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/REPOSITORYDove
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.
L'autenticazione di Helm con Artifact Registry è stata eseguita. Ora puoi eseguire il push del grafico nel repository.
Esegui il push del grafico in Artifact Registry
Dopo aver creato l'archivio del grafico ed eseguito l'autenticazione nel repository di Artifact Registry, puoi eseguire il push del grafico nel repository.
Per eseguire il push del grafico, esegui questo 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 è il nome dell'immagine:
hello-chart - La versione del grafico è il tag dell'immagine:
0.1.0
Helm restituisce un output simile all'esempio seguente:
Login Succeeded
Pushed: us-west1-docker.pkg.dev/my-project/quickstart-helm-repo/hello-chart:0.1.0
Digest: sha256:67a72...
Esegui il comando seguente 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 comando è simile all'esempio seguente:
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 cui è stato eseguito il deployment dell'applicazione è chiamata release. Dopo aver aggiunto il repository alla configurazione di Helm, puoi eseguire il deployment di una release del grafico.
Crea un cluster denominato
chart-clusterper il deployment con il comando:gcloud container clusters create --zone us-west1-a chart-clusterQuando il cluster viene creato, il comando restituisce un riepilogo simile all'esempio seguente:
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: RUNNINGRecupera le credenziali del cluster in modo che
kubectlpossa accedere al cluster:gcloud container clusters get-credentials --zone us-west1-a chart-clusterEsegui il comando seguente per eseguire il deployment di una release di
hello-chartutilizzando i file del grafico estratti localmente:helm install hello-chart oci://us-west1-docker.pkg.dev/PROJECT/quickstart-helm-repo/hello-chart --version 0.1.0Il 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 correttamente il deployment di una release utilizzando il grafico che hai creato e di cui hai eseguito il push in Artifact Registry.
Libera spazio
Per evitare che al tuo Google Cloud account vengano addebitati costi relativi alle risorse utilizzate in questa pagina, segui questi passaggi.
Elimina il repository che hai creato con il comando seguente:
gcloud artifacts repositories delete quickstart-helm-repo --location=us-west1Elimina il cluster che hai creato:
gcloud container clusters delete --zone=us-west1-a chart-cluster
Passaggi successivi
- Scopri di più su come lavorare con i grafici.
- Scopri di più su Helm.
- Leggi le nostre risorse su DevOps ed esplora il nostro programma di ricerca.