Almacena gráficos de Helm en Artifact Registry

Helm es el administrador de paquetes de Kubernetes. Utiliza 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:

  • Crea un repositorio privado en Artifact Registry
  • Crea un gráfico de muestra
  • Autentica con el repositorio
  • Envía el gráfico al repositorio
  • Implementa el gráfico

Antes de comenzar

  1. Accede a tu cuenta de Google Cloud. 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.
  2. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  4. Habilita las API de Artifact Registry, Google Kubernetes Engine.

    Habilita las API

  5. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  6. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  7. Habilita las API de Artifact Registry, Google Kubernetes Engine.

    Habilita las API

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 Google Cloud CLI, 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:

  1. Ve a la consola de Google Cloud.

    Consola de Google Cloud

  2. 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.

  3. 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 version para verificar tu versión.

Configura una shell local

Para instalar gcloud CLI y Helm, sigue estos pasos:

  1. Instala la CLI de gcloud. Para actualizar una instalación existente, ejecuta el comando gcloud components update.

  2. 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 version para verificar tu versión.

Crear un repositorio

Crea un repositorio de Docker para almacenar el gráfico de muestra de esta guía de inicio rápido.

Consola

  1. Abre la página Repositorios en la consola de Google Cloud.

    Abrir la página Repositorios

  2. Haz clic en Crear repositorio.

  3. Especifica quickstart-helm-repo como el nombre del repositorio.

  4. Elige Docker como el formato.

  5. En Tipo de ubicación, selecciona Región y, luego, elige la ubicación us-central1.

  6. Haz clic en Crear.

El repositorio se agrega a la lista de repositorios.

gcloud

  1. Ejecuta el siguiente comando para crear un nuevo repositorio de Docker llamado quickstart-helm-repo en la ubicación us-central1 con la descripción “repositorio de Docker”.

    gcloud artifacts repositories create quickstart-helm-repo --repository-format=docker \
    --location=us-central1 --description="Helm repository"
    
  2. 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.

Crear un gráfico

En esta guía de inicio rápido, crearás un gráfico de muestra llamado hello-chart.

  1. Cambia a un directorio en el que desees crear el gráfico.
  2. Ejecuta el siguiente comando para crear el gráfico:

    helm create hello-chart
    

    Helm crea un directorio llamado hello-chart con un conjunto predeterminado de archivos de gráficos. Uno de los archivos es Chart.yaml, que incluye información sobre el gráfico.

  3. Empaqueta el gráfico como un archivo.

    helm package hello-chart/
    

    Helm crea un archivo llamado hello-chart-0.1.0.tgz con el nombre del gráfico y el número de versión en Chart.yaml.

Autentica con el repositorio

Antes de que puedas 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 autenticar con un token de acceso para esta guía de inicio rápido.

Consulta Configura la autenticación para Helm a fin de obtener más información sobre la autenticación.

Autentica con tu configuración de Docker

De manera predeterminada, Helm admite la configuración de registro en el archivo de configuración de Docker config.json. Helm encuentra la configuración del registro en la ubicación predeterminada o en la que especifica la variable de entorno DOCKER_CONFIG.

Si configuraste Docker con un auxiliar de credenciales para autenticar con Artifact Registry, Helm usará tu configuración existente para los repositorios de Docker de Artifact Registry.

Autentica con un token de acceso

Para autenticar con un token de acceso, haz lo siguiente:

  1. Obtén un token de acceso como credenciales cuando te autentiques 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-central1-docker.pkg.dev
    

    Windows

    Ejecuta el siguiente comando:

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

    Donde

    • oauth2accesstoken es el nombre de usuario que se usará para la autenticación con un token de acceso.
    • gcloud auth print-access-token es 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 se autentica con Artifact Registry. Estás listo para push el gráfico al repositorio.

Envía el gráfico a Artifact Registry

Después de crear el archivo de gráficos 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-central1-docker.pkg.dev/PROJECT/quickstart-helm-repo

Reemplaza PROJECT por el ID del proyecto de Google Cloud.

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 imagen: 0.1.0

Helm muestra un resultado similar al siguiente ejemplo:

Login Succeeded
Pushed: us-central1-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-central1-docker.pkg.dev/PROJECT/quickstart-helm-repo

El resultado del comando es similar al siguiente ejemplo:

Listing items under project my-project, location us-central1, repository quickstart-helm-repo.

IMAGE: us-central1-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 actualización. Después de agregar tu repositorio a la configuración de Helm, puedes implementar una actualización de tu gráfico.

  1. Crea un clúster llamado chart-cluster para tu implementación con el siguiente comando:

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

    Cuando 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-central1-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. Obtén las credenciales del clúster para que kubectl pueda acceder a él:

    gcloud container clusters get-credentials --zone us-central1-a chart-cluster
    
  3. Ejecuta el siguiente comando para implementar una versión de hello-chart con los archivos de gráfico extraídos de forma local:

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

    El 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 cuenta de Google Cloud por los recursos que se usaron en esta página.

  1. Borra el repositorio que creaste con el siguiente comando:

    gcloud artifacts repositories delete quickstart-helm-repo --location=us-central1
    
  2. Borra el clúster que creaste:

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

¿Qué sigue?