Almacena gráficos de Helm en Artifact Registry
Helm es el administrador de paquetes para Kubernetes. Usa gráficos que definen un conjunto de recursos de Kubernetes para implementar.
Esta guía de inicio rápido te muestra cómo hacer lo siguiente:
- Crear un repositorio privado en Artifact Registry
- Crear un gráfico de muestra
- Autenticarte en el repositorio
- Enviar el gráfico al repositorio
- Implementar el gráfico
Antes de comenzar
- Accede a tu Google Cloud cuenta de. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
-
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.
Roles obligatorios
Para obtener los permisos que
necesitas para crear y administrar gráficos de Helm en repositorios de paquetes de Docker de Artifact Registry,
pídele a tu administrador que te otorgue el
rol de IAM de Administrador de Artifact Registry (roles/artifactregistry.admin)
en tu proyecto.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Elige una shell
Para completar esta guía de inicio rápido, usa Cloud Shell o tu shell local.
- Cloud Shell
- Cloud Shell es un entorno de shell que se usa para administrar recursos alojados en Google Cloud. Viene preinstalado con Docker, Helm y la CLI de Google Cloud, la interfaz de línea de comandos principal para Google Cloud.
- Shell local
- Si prefieres usar tu shell local, debes instalar Docker y gcloud CLI en tu entorno.
Inicia Cloud Shell
Para iniciar Cloud Shell, sigue estos pasos:
Accede a la Google Cloud consola de.
Haz clic en el botón Activar Cloud Shell:
.Se abrirá una sesión de Cloud Shell dentro de un marco en la parte inferior en la consola. Usa esta shell para ejecutar los comandos de
gcloud.Instala Helm 3.8.0 o una versión posterior. En versiones anteriores de Helm, la compatibilidad con gráficos en formato OCI es una función experimental.
Ejecuta
helm versionpara verificar tu versión.
Configura una shell local
Para instalar gcloud CLI y Helm, realiza los siguientes pasos:
Instala la CLI de gcloud. Para actualizar una instalación existente, ejecuta el comando
gcloud components update.Instala Helm 3.8.0 o una versión posterior. En versiones anteriores de Helm, la compatibilidad con gráficos en formato OCI es una función experimental.
Ejecuta
helm versionpara verificar tu versión.
Crea un repositorio
Crea un repositorio de Docker para almacenar el gráfico de muestra de esta guía de inicio rápido.
Console
Abre la página Repositorios en la Google Cloud consola de.
Haz clic en Crear repositorio.
Especifica
quickstart-helm-repocomo el nombre del repositorio.Elige Docker como el formato.
En Tipo de ubicación, selecciona Región y, luego, elige la ubicación
us-west1.Haga clic en Crear.
El repositorio se agrega a la lista de repositorios.
gcloud
Ejecuta el siguiente comando para crear un nuevo repositorio de Docker llamado
quickstart-helm-repoen la ubicaciónus-west1con la descripción “repositorio de Docker”.gcloud artifacts repositories create quickstart-helm-repo --repository-format=docker \ --location=us-west1 --description="Helm repository"Ejecuta el siguiente comando para verificar que se haya creado el repositorio:
gcloud artifacts repositories list
Para obtener más información sobre los comandos de Artifact Registry, ejecuta el comando gcloud artifacts.
Crea un gráfico
Para esta guía de inicio rápido, crearás un gráfico de muestra llamado hello-chart.
- Cambia a un directorio en el que deseas crear el gráfico.
Ejecuta el siguiente comando para crear el gráfico:
helm create hello-chartHelm crea un directorio llamado
hello-chartcon un conjunto predeterminado de archivos de gráficos. Uno de los archivos es Chart.yaml, que incluye información sobre el gráfico.Empaqueta el gráfico en un archivo.
helm package hello-chart/Helm crea un archivo llamado
hello-chart-0.1.0.tgzcon el nombre del gráfico y el número de versión enChart.yaml.
Autentica con el repositorio
Para poder enviar o instalar imágenes, Helm debe autenticarse en Artifact Registry.
Helm puede usar la configuración de registro existente en un archivo de configuración de Docker. Si aún no configuraste Docker para usarlo con Artifact Registry, puedes autenticarte con un token de acceso para esta guía de inicio rápido.
Consulta Configura la autenticación para Helm para obtener más información sobre la autenticación.
Autentica con tu configuración de Docker
De forma predeterminada, Helm admite la configuración de registro en el archivo de configuración de Docker config.json. Helm encuentra la configuración de registro en la ubicación predeterminada o en la ubicación especificada por la DOCKER_CONFIG.
Si configuraste Docker con un auxiliar de credenciales para autenticarte con Artifact Registry, Helm usa tu configuración existente para los repositorios de Docker de Artifact Registry.
Autentica con un token de acceso
Para autenticarte con un token de acceso, haz lo siguiente:
Obtén un token de acceso como credenciales cuando te autenticas en Artifact Registry con Helm.
Linux / macOS
Ejecuta el siguiente comando:
gcloud auth print-access-token | helm registry login -u oauth2accesstoken \ --password-stdin https://us-west1-docker.pkg.devWindows
Ejecuta el siguiente comando:
gcloud auth print-access-token ya29.8QEQIfY_... helm registry login -u oauth2accesstoken -p "ya29.8QEQIfY_..." \ https://us-west1-docker.pkg.dev/PROJECT-ID/REPOSITORYDonde
oauth2accesstokenes el nombre de usuario que se usará para la autenticación con un token de acceso.gcloud auth print-access-tokenes el comando de gcloud que se usa para obtener el token de acceso. El token de acceso es la contraseña para la autenticación.
Helm ahora está autenticado con Artifact Registry. Ya puedes enviar el gráfico al repositorio.
Envía el gráfico a Artifact Registry
Después de crear el archivo de gráfico y autenticarte en el repositorio de Artifact Registry, puedes enviar el gráfico al repositorio.
Para enviar el gráfico, ejecuta el siguiente comando:
helm push hello-chart-0.1.0.tgz oci://us-west1-docker.pkg.dev/PROJECT/quickstart-helm-repo
Reemplaza PROJECT por tu Google Cloud ID del proyecto.
Helm usa valores de Chart.yaml para la imagen:
- El nombre del gráfico es el nombre de la imagen:
hello-chart. - La versión del gráfico es la etiqueta de la imagen:
0.1.0.
Helm muestra un resultado similar al siguiente ejemplo:
Login Succeeded
Pushed: us-west1-docker.pkg.dev/my-project/quickstart-helm-repo/hello-chart:0.1.0
Digest: sha256:67a72...
Ejecuta el siguiente comando para verificar que el gráfico ahora esté almacenado en el repositorio:
gcloud artifacts docker images list us-west1-docker.pkg.dev/PROJECT/quickstart-helm-repo
El resultado del comando es similar al siguiente ejemplo:
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
Ahora puedes implementar una versión con el gráfico almacenado en Artifact Registry.
Implementa el gráfico
En Helm, una instancia implementada de tu aplicación se denomina versión. Después de agregar tu repositorio a la configuración de Helm, puedes implementar una versión de tu gráfico.
Crea un clúster llamado
chart-clusterpara tu implementación con el siguiente comando:gcloud container clusters create --zone us-west1-a chart-clusterCuando se crea el clúster, el comando muestra un resumen similar al siguiente ejemplo:
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: RUNNINGObtén las credenciales del clúster para que
kubectlpueda acceder a él:gcloud container clusters get-credentials --zone us-west1-a chart-clusterEjecuta el siguiente comando para implementar una versión de
hello-chartcon los archivos de gráficos extraídos de forma local:helm install hello-chart oci://us-west1-docker.pkg.dev/PROJECT/quickstart-helm-repo/hello-chart --version 0.1.0El comando muestra un resumen de la implementación:
NAME: hello-chart LAST DEPLOYED: Mon Nov 8 23:15:13 2021 NAMESPACE: default STATUS: deployed REVISION: 1
Implementaste correctamente una versión con el gráfico que creaste y enviaste a Artifact Registry.
Limpia
Sigue estos pasos para evitar que se apliquen cargos a tu Google Cloud cuenta de por los recursos que usaste en esta página.
Borra el repositorio que creaste con el siguiente comando:
gcloud artifacts repositories delete quickstart-helm-repo --location=us-west1Borra el clúster que creaste:
gcloud container clusters delete --zone=us-west1-a chart-cluster
¿Qué sigue?
- Obtén más información para trabajar con gráficos.
- Obtén más información sobre Helm.
- Lee nuestros recursos sobre DevOps y explora nuestro programa de investigación.