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 a serem implantados.

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

  • Crie um repositório particular no Artifact Registry
  • Criar um gráfico de amostra
  • Autenticar com o repositório
  • Envie o gráfico para o repositório
  • Implantar o gráfico

Antes de começar

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  3. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  4. Ative as APIs Artifact Registry, Google Kubernetes Engine.

    Ative as APIs

  5. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  6. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  7. Ative as APIs Artifact Registry, Google Kubernetes Engine.

    Ative as APIs

Escolha um shell

Para concluir este guia de início rápido, use o Cloud Shell ou o shell local.

Cloud Shell
O Cloud Shell é um ambiente de shell para gerenciar recursos hospedados no Google Cloud. Ela vem pré-instalada com o Docker, o Helm e a Google Cloud CLI, a principal interface de linha de comando do Google Cloud.
Shell local
Se preferir usar o shell local, instale o Docker e CLI gcloud no seu ambiente.

Como iniciar o Cloud Shell

Para iniciar o Cloud Shell, execute os seguintes passos:

  1. Acesse o Console do Google Cloud.

    Console do Google Cloud

  2. Clique no botão Ativar o Cloud Shell:  .

    Uma sessão do Cloud Shell é aberta dentro de um quadro inferior no console. Use esse shell para executar comandos gcloud.

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

Como configurar um shell local

Para instalar CLI gcloud e o Helm, execute as seguintes etapas:

  1. Instale a CLI da gcloud. Para atualizar uma instalação, 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 Google 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 us-west1.

  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 us-west1 com a descrição "repositório do docker".

    gcloud artifacts repositories create quickstart-helm-repo --repository-format=docker \
    --location=us-west1 --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.

Crie um gráfico

Para este guia de início rápido, você criará um gráfico de amostra chamado hello-chart.

  1. Acesse o diretório em que você 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 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. Empacotar o gráfico e arquivar.

    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 de 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, faça a autenticação com um token de acesso para este guia de início rápido.

Para mais informações sobre autenticação, consulte Como configurar a autenticação para o Helm.

Autenticar com a configuração do Docker

Por padrão, o Helm aceita 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 usará sua configuração atual para repositórios do Docker do Artifact Registry.

Fazer a autenticação com um token de acesso

Para autenticar com um token de acesso:

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

    Linux / macOS

    Execute este comando:

    gcloud auth print-access-token | helm registry login -u oauth2accesstoken \
    --password-stdin https://us-west1-docker.pkg.dev
    

    Windows

    Execute este comando:

    gcloud auth print-access-token
    ya29.8QEQIfY_...
    
    helm registry login -u oauth2accesstoken -p "ya29.8QEQIfY_..." \
    https://us-west1-docker.pkg.dev/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. Você está pronto para push o gráfico para o repositório.

Envie o gráfico para o Artifact Registry

Depois de criar o arquivo do gráfico e se autenticar ao repositório do Artifact Registry, envie o gráfico para o repositório.

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

helm push hello-chart-0.1.0.tgz oci://us-west1-docker.pkg.dev/PROJECT/quickstart-helm-repo

Substitua PROJECT pelo ID do projeto do Google Cloud.

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 de imagem: 0.1.0

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

Login Succeeded
Pushed: us-west1-docker.pkg.dev/my-project/quickstart-helm-repo/hello-chart:0.1.0
Digest: sha256:67a72...

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

gcloud artifacts docker images list us-west1-docker.pkg.dev/PROJECT/quickstart-helm-repo

A resposta ao comando é semelhante ao exemplo a seguir:

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

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 versão. Depois de adicionar o repositório à configuração do Helm, é possível 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 us-west1-a chart-cluster
    

    Quando o cluster é criado, o comando retorna um resumo semelhante ao exemplo a seguir:

    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: RUNNING
    
  2. Consiga as credenciais do cluster para que kubectl possa acessá-lo:

    gcloud container clusters get-credentials --zone us-west1-a chart-cluster
    
  3. Execute o comando a seguir para implantar uma versão de hello-chart usando os arquivos de gráfico extraídos localmente:

    helm install hello-chart oci://us-west1-docker.pkg.dev/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 criado e enviado ao Artifact Registry.

Limpar

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

  1. Exclua o repositório que você criou usando o seguinte comando:

    gcloud artifacts repositories delete quickstart-helm-repo --location=us-west1
    
  2. Exclua o cluster criado:

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

A seguir