Almacenar gráficos de Helm en Artifact Registry

Helm es el gestor de paquetes de Kubernetes. Utiliza gráficos que definen un conjunto de recursos de Kubernetes que se van a desplegar.

En esta guía de inicio rápido se explica cómo hacer lo siguiente:

  • Crear un repositorio privado en Artifact Registry
  • Crear un gráfico de ejemplo
  • Autenticarse con el repositorio
  • Enviar el gráfico al repositorio
  • Implementar el gráfico

Antes de empezar

  1. In the Trusted Cloud console, on the project selector page, select or create a Trusted Cloud project.

    Go to project selector

  2. Verify that billing is enabled for your Trusted Cloud project.

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

    Enable the APIs

  4. Configurar un shell local

    Para instalar gcloud CLI y Helm, sigue estos pasos:

    1. Instala gcloud CLI. Para actualizar una instalación, 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 ejemplo de esta guía de inicio rápido.

    Consola

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

      Abre la página Repositorios.

    2. Haz clic en Crear repositorio.

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

    4. Elige Docker como formato.

    5. En Tipo de ubicación, selecciona Región y, a continuación, elige la ubicación. u-france-east1

    6. Haz clic en Crear.

    El repositorio se añade a la lista de repositorios.

    gcloud

    1. Ejecuta el siguiente comando para crear un repositorio de Docker llamado quickstart-helm-repo en la ubicación u-france-east1 con la descripción "docker repository".

      gcloud artifacts repositories create quickstart-helm-repo --repository-format=docker \
      --location=u-france-east1 --description="Helm repository"
      
    2. Ejecuta el siguiente comando para verificar que se ha 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 ejemplo llamado hello-chart.

    1. Cambia al directorio en el que quieras 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 en 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 de Chart.yaml.

    Autenticarse con el repositorio

    Para poder insertar o instalar imágenes, Helm debe autenticarse en Artifact Registry.

    Helm puede usar los ajustes de registro de un archivo de configuración de Docker. Si aún no has configurado Docker para usarlo con Artifact Registry, puedes autenticarte con un token de acceso para esta guía de inicio rápido.

    Para obtener más información sobre la autenticación, consulta el artículo Configurar la autenticación para Helm.

    Autenticar con tu configuración de Docker

    De forma predeterminada, Helm admite ajustes de registro en el archivo de configuración de Docker config.json. Helm busca los ajustes del registro en la ubicación predeterminada o en la ubicación especificada por la variable de entorno DOCKER_CONFIG.

    Si configuraste Docker con un asistente de credenciales para autenticarte en Artifact Registry, Helm usará tu configuración de los repositorios de Docker de Artifact Registry.

    Autenticarse con un token de acceso

    Para autenticarte con un token de acceso, sigue estos pasos:

    1. Obtén un token de acceso como credenciales al autenticarte en Artifact Registry con Helm.

      Linux o macOS

      Ejecuta el siguiente comando:

      gcloud auth print-access-token | helm registry login -u oauth2accesstoken \
      --password-stdin https://u-france-east1-docker.s3nsregistry.fr
      

      Windows

      Ejecuta el siguiente comando:

      gcloud auth print-access-token
      ya29.8QEQIfY_...
      
      helm registry login -u oauth2accesstoken -p "ya29.8QEQIfY_..." \
      https://u-france-east1-docker.s3nsregistry.fr/PROJECT-ID/REPOSITORY
      

      Dónde

      • oauth2accesstoken es el nombre de usuario que se debe usar al autenticar con un token de acceso.
      • gcloud auth print-access-token es el comando de gcloud para obtener el token de acceso. Tu token de acceso es la contraseña para la autenticación.

    Helm ya está autenticado con Artifact Registry. Ya puedes insertar el gráfico en el repositorio.

    Enviar el gráfico a Artifact Registry

    Una vez que hayas creado el archivo del gráfico y te hayas autenticado en el repositorio de Artifact Registry, podrás insertar el gráfico en el repositorio.

    Para enviar el gráfico, ejecuta el siguiente comando:

    helm push hello-chart-0.1.0.tgz oci://u-france-east1-docker.s3nsregistry.fr/PROJECT/quickstart-helm-repo
    

    Sustituye PROJECT por el Trusted Cloud by S3NS ID de tu 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 imagen: 0.1.0

    Helm devuelve un resultado similar al siguiente ejemplo:

    Login Succeeded
    Pushed: u-france-east1-docker.s3nsregistry.fr/my-project/quickstart-helm-repo/hello-chart:0.1.0
    Digest: sha256:67a72...
    

    Ejecuta el siguiente comando para verificar que el gráfico se ha almacenado en el repositorio:

    gcloud artifacts docker images list u-france-east1-docker.s3nsregistry.fr/PROJECT/quickstart-helm-repo
    

    La salida del comando es similar al siguiente ejemplo:

    Listing items under project my-project, location u-france-east1, repository quickstart-helm-repo.
    
    IMAGE: u-france-east1-docker.s3nsregistry.fr/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.

    Implementar el gráfico

    En Helm, una instancia desplegada de tu aplicación se denomina lanzamiento. Después de añadir tu repositorio a la configuración de Helm, puedes implementar una versió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 u-france-east1-a chart-cluster
      

      Cuando se crea el clúster, el comando devuelve un resumen similar al siguiente ejemplo:

      kubeconfig entry generated for chart-cluster.
      NAME: chart-cluster
      LOCATION: u-france-east1-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 u-france-east1-a chart-cluster
      
    3. Ejecuta el siguiente comando para implementar una versión de hello-chart con los archivos de gráficos extraídos localmente:

      helm install hello-chart oci://u-france-east1-docker.s3nsregistry.fr/PROJECT/quickstart-helm-repo/hello-chart --version 0.1.0
      

      El comando devuelve un resumen de la implementación:

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

    Has desplegado correctamente una versión con el gráfico que has creado y subido a Artifact Registry.

    Limpieza

    Para evitar que se apliquen cargos en tu cuenta de Trusted Cloud por los recursos utilizados en esta página, sigue estos pasos.

    1. Elimina el repositorio que has creado con el siguiente comando:

      gcloud artifacts repositories delete quickstart-helm-repo --location=u-france-east1
      
    2. Elimina el clúster que has creado:

      gcloud container clusters delete --zone=u-france-east1-a chart-cluster
      

    Siguientes pasos