Armazenar gráficos do Helm no Artifact Registry

O Helm é o gerenciador de pacotes do Kubernetes. Ele usa gráficos que definem um conjunto de recursos do Kubernetes para implantação.

Neste guia de início rápido, você aprende a:

  • Criar um repositório particular no Artifact Registry
  • Criar um gráfico de exemplo
  • Autenticar com o repositório
  • Envie o gráfico para o repositório
  • Implantar 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. Como configurar um shell local

    Para instalar a CLI gcloud e o Helm, siga estas etapas:

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

    2. Instale o Helm 3.8.0 ou mais recente. Nas versões anteriores do Helm, o suporte a gráficos no formato OCI é um recurso experimental.

      Execute helm version para verificar sua versão.

    Criar um repositório

    Crie um repositório do Docker para armazenar o gráfico de amostra deste guia de início rápido.

    Console

    1. Abra a página Repositórios no console do Trusted Cloud .

      Abrir a página Repositórios

    2. Clique em Criar repositório.

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

    4. Escolha Docker como o formato.

    5. Em Tipo de local, selecione Região e escolha o local 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 chamado quickstart-helm-repo no local 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 saber mais sobre os comandos do Artifact Registry, execute o comando gcloud artifacts.

    criar um gráfico

    Neste guia de início rápido, você vai criar um gráfico de exemplo chamado hello-chart.

    1. Mude para um diretório onde você quer criar o gráfico.
    2. Execute o comando a seguir para criar o gráfico:

      helm create hello-chart
      

      O Helm cria um diretório chamado hello-chart com um conjunto padrão de arquivos de gráfico. Um dos arquivos é Chart.yaml, que inclui informações sobre o gráfico.

    3. Empacote o gráfico em um arquivo.

      helm package hello-chart/
      

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

    Autenticar com o repositório

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

    O Helm pode usar as configurações de registro atuais em um arquivo de configuração do Docker. Se você ainda não configurou o Docker para uso com o Artifact Registry, é possível fazer a autenticação com um token de acesso para este guia de início rápido.

    Consulte Como configurar a autenticação para o Helm para mais informações.

    Autenticar com sua configuração do Docker

    Por padrão, o Helm oferece suporte a configurações de registro no arquivo de configuração do Docker config.json. O Helm encontra as configurações do registro no local padrão ou no local especificado pela variável de ambiente DOCKER_CONFIG.

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

    Fazer a autenticação com um token de acesso

    Para fazer a autenticação com um token de acesso:

    1. Receber um token de acesso como credenciais ao autenticar no Artifact Registry com o Helm.

      Linux/macOS

      Execute este comando:

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

      Windows

      Execute este 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 usuário a ser usado na autenticação com um token de acesso.
      • gcloud auth print-access-token é o comando da gcloud para receber o token de acesso. Seu token de acesso é a senha para autenticação.

    O Helm agora está autenticado com o Artifact Registry. Agora você pode enviar o gráfico ao repositório.

    Envie o gráfico para o Artifact Registry

    Depois de criar o arquivo do gráfico e se autenticar no repositório do Artifact Registry, é possível 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 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 tag da imagem: 0.1.0

    O Helm retorna uma saída semelhante ao exemplo a seguir:

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

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

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

    A resposta ao comando é semelhante ao exemplo a seguir:

    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
    

    Agora é possível implantar uma versão usando o gráfico armazenado no Artifact Registry.

    Implantar o gráfico

    No Helm, uma instância implantada do aplicativo é chamada de lançamento. Depois de adicionar o repositório à configuração do Helm, você poderá implantar uma versão do gráfico.

    1. Crie um cluster chamado chart-cluster para sua implantação com o comando:

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

      Quando o cluster for criado, o comando vai retornar um resumo semelhante ao exemplo a seguir:

      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. Receba as credenciais para que kubectl possa acessar o cluster:

      gcloud container clusters get-credentials --zone u-france-east1-a chart-cluster
      
    3. Execute o comando a seguir para implantar uma versão do hello-chart usando os arquivos de gráfico 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 retorna um resumo da implantação:

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

    Você implantou uma versão usando o gráfico que criou e enviou para o Artifact Registry.

    Limpar

    Para evitar cobranças na sua conta do Trusted Cloud pelos recursos usados nesta página, siga estas etapas.

    1. Exclua o repositório criado com o seguinte comando:

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

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

    A seguir