Armazene gráficos Helm no Artifact Registry

O Helm é o gestor de pacotes para o Kubernetes. Usa gráficos que definem um conjunto de recursos do Kubernetes a implementar.

Este início rápido mostra como:

  • Crie um repositório privado no Artifact Registry
  • Crie um gráfico de amostra
  • Autentique-se com o repositório
  • Envie o gráfico para o repositório
  • Implemente o gráfico

Antes de começar

  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 uma shell local

    Para instalar a CLI gcloud e o Helm, siga estes passos:

    1. Instale a CLI gcloud. Para atualizar uma instalação existente, execute o comando gcloud components update.

    2. Instale o Helm 3.8.0 ou posterior. Nas versões anteriores do Helm, o suporte para gráficos no formato OCI é uma funcionalidade experimental.

      Execute helm version para verificar a sua versão.

    Crie um repositório

    Crie um repositório Docker para armazenar o gráfico de exemplo para este início rápido.

    Consola

    1. Abra a página Repositórios na Trusted Cloud consola.

      Abra a página Repositórios

    2. Clique em Criar repositório.

    3. Especifique quickstart-helm-repo como o nome do repositório.

    4. Escolha o Docker como formato.

    5. Em Tipo de localização, selecione Região e, de seguida, escolha a localização u-france-east1.

    6. Clique em Criar.

    O repositório é adicionado à lista de repositórios.

    gcloud

    1. Execute o seguinte comando para criar um novo repositório do Docker denominado quickstart-helm-repo na localização u-france-east1 com a descrição "repositório do Docker".

      gcloud artifacts repositories create quickstart-helm-repo --repository-format=docker \
      --location=u-france-east1 --description="Helm repository"
      
    2. Execute o seguinte comando para verificar se o repositório foi criado.

      gcloud artifacts repositories list
      

    Para mais informações sobre os comandos do Artifact Registry, execute o comando gcloud artifacts.

    Crie um gráfico

    Para este início rápido, vai criar um gráfico de amostra denominado hello-chart.

    1. Altere para um diretório onde quer criar o gráfico.
    2. Execute o seguinte comando para criar o gráfico:

      helm create hello-chart
      

      O Helm cria um diretório denominado hello-chart com um conjunto predefinido de ficheiros de gráficos. Um dos ficheiros é o Chart.yaml, que inclui informações sobre o gráfico.

    3. Empacote o gráfico num arquivo.

      helm package hello-chart/
      

      O Helm cria um arquivo com o nome hello-chart-0.1.0.tgz usando o nome do gráfico e o número da versão em Chart.yaml.

    Autentique-se com o repositório

    Antes de poder enviar ou instalar imagens, o Helm tem de se autenticar no Artifact Registry.

    O Helm pode usar as definições de registo existentes num ficheiro de configuração do Docker. Se ainda não configurou o Docker para utilização com o Artifact Registry, pode autenticar-se com um token de acesso para este início rápido.

    Consulte o artigo Configurar a autenticação para o Helm para mais informações sobre a autenticação.

    Efetue a autenticação com a sua configuração do Docker

    Por predefinição, o Helm suporta definições de registo no ficheiro de configuração do Docker config.json. O Helm encontra as definições do registo na localização predefinida ou na localização especificada pela variável de ambiente DOCKER_CONFIG.

    Se configurou o Docker com um auxiliar de credenciais para autenticar com o Artifact Registry, o Helm usa a sua configuração existente para os repositórios Docker do Artifact Registry.

    Efetue a autenticação com um token de acesso

    Para autenticar com um token de acesso:

    1. Obtenha um token de acesso como credenciais quando se autenticar no Artifact Registry com o Helm.

      Linux / macOS

      Execute o seguinte comando:

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

      Windows

      Execute o seguinte 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
      

      Onde

      • oauth2accesstoken é o nome de utilizador a usar quando se autentica com um token de acesso.
      • gcloud auth print-access-token é o comando gcloud para obter o token de acesso. A chave de acesso é a palavra-passe para a autenticação.

    O Helm está agora autenticado com o Artifact Registry. Tem tudo pronto para enviar o gráfico para o repositório.

    Envie o gráfico para o Artifact Registry

    Depois de criar o arquivo de gráficos e autenticar no repositório do Artifact Registry, pode enviar o gráfico para o repositório.

    Para enviar o gráfico, execute o seguinte comando:

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

    Substitua PROJECT pelo seu Trusted Cloud by S3NS ID do projeto.

    O Helm usa valores de Chart.yaml para a imagem:

    • O nome do gráfico é o nome da imagem: hello-chart
    • A versão do gráfico é a etiqueta de imagem: 0.1.0

    O Helm devolve um resultado semelhante ao seguinte exemplo:

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

    Execute o seguinte comando para verificar se o gráfico está agora armazenado no repositório:

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

    O resultado do comando tem um aspeto semelhante ao seguinte exemplo:

    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
    

    Já pode implementar um lançamento através do gráfico armazenado no Artifact Registry.

    Implemente o gráfico

    No Helm, uma instância implementada da sua aplicação é denominada lançamento. Depois de adicionar o repositório à configuração do Helm, pode implementar uma versão do seu gráfico.

    1. Crie um cluster com o nome chart-cluster para a implementação com o comando:

      gcloud container clusters create --zone u-france-east1-a chart-cluster
      

      Quando o cluster é criado, o comando devolve um resumo semelhante ao do exemplo seguinte:

      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. Obtenha as credenciais do cluster para que kubectl possa aceder ao cluster:

      gcloud container clusters get-credentials --zone u-france-east1-a chart-cluster
      
    3. Execute o seguinte comando para implementar uma versão do hello-chart usando os ficheiros 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
      

      O comando devolve um resumo da implementação:

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

    Implementou com êxito um lançamento através do gráfico que criou e enviou para o Artifact Registry.

    Limpar

    Para evitar incorrer em cobranças na sua Trusted Cloud conta pelos recursos usados nesta página, siga estes passos.

    1. Elimine o repositório que criou com o seguinte comando:

      gcloud artifacts repositories delete quickstart-helm-repo --location=u-france-east1
      
    2. Elimine o cluster que criou:

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

    O que se segue?