Esta página foi traduzida pela API Cloud Translation.
Switch to English

Guia de início rápido do Helm

O Helm é o gerenciador de pacotes do Kubernetes. Ele usa gráficos que definem um conjunto de recursos do Kubernetes a serem implantados.

O Helm 3 é compatível com gráficos salvos como imagens de contêiner OCI. Como o Artifact Registry é compatível com imagens de contêiner no formato OCI, é possível armazenar gráficos do Helm em um repositório do Docker do Artifact Registry.

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

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

Antes de começar

  1. Faça login na sua conta do Google.

    Se você ainda não tiver uma, inscreva-se.

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

    Acessar a página do seletor de projetos

  3. Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como confirmar se o faturamento está ativado para o projeto.

  4. 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. Ele vem pré-instalado com o Docker, o Helm e a ferramenta de linha de comando gcloud, a interface de linha de comando principal do Google Cloud.
Shell local
Se preferir usar o shell local, instale o Docker e o SDK do Cloud no 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.

Como configurar um shell local

Para instalar o SDK do Cloud e o Helm, execute as seguintes etapas:

  1. Instale o SDK do Cloud , que inclui a ferramenta de linha de comando gcloud. Para atualizar uma instalação atual, execute o comando gcloud components update.

  2. Instale o Helm 3, se ele ainda não estiver instalado.

  3. Ative o suporte experimental do Helm para imagens OCI com a variável HELM_EXPERIMENTAL_OCI. Adicione a linha a seguir a ~/.bashrc (ou ~/.bash_profile no macOS ou sempre que o shell armazenar variáveis de ambiente):

    export HELM_EXPERIMENTAL_OCI=1
    
  4. Execute o seguinte comando para carregar o arquivo atualizado .bashrc ou .bash_profile:

    source ~/.bashrc
    

Crie 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 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-central1.

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

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

Criar um gráfico

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

  1. Mude para um diretório em que você quer criar o gráfico.
  2. Execute este 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.

  3. Salve o gráfico como uma imagem OCI usando o caminho completo para o local da imagem no repositório criado.

    helm chart save hello-chart us-central1-docker.pkg.dev/PROJECT/quickstart-helm-repo/hello-chart
    

    Substitua PROJECT pelo ID do projeto do Google Cloud.

    O comando retorna informações sobre a imagem.

    ref:     us-central1-docker.pkg.dev/my-project/quickstart-helm-repo/hello-chart:0.1.0
    digest:  decd0b41c389fd46c586c292eaf05f446fe05dc56248f409bef2c123ab7b7032
    size:    3.5 KiB
    name:    hello-chart
    version: 0.1.0
    0.1.0: saved
    

    O Helm marca a imagem com 0.1.0, o número padrão da versão do gráfico no arquivo hello-chart/Chart.yaml. Atualizar esse número de versão sempre que você fizer alterações em um gráfico é uma maneira útil de manter os metadados em Chart.yaml sincronizados com as tags da imagem do contêiner.

  4. Liste os gráficos no seu cache local.

    helm chart list
    

    A lista inclui o gráfico salvo.

    REF                                                             NAME            VERSION DIGEST  SIZE    CREATED
    us-central1-docker.pkg.dev/my-project/quickstart-helm-repo...   hello-chart     0.1.0   decd0b4 3.5 KiB 2 minutes
    

Autenticar com o repositório

Antes de enviar ou instalar imagens, o Helm precisa ser autenticado no Artifact Registry.

Se você configurou o Docker com um auxiliar de credenciais para autenticar com o Artifact Registry, é possível definir o Helm para usar as configurações de registro do Docker (em inglês). Caso contrário, é possível autenticar no repositório 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 sobre a autenticação.

Autenticar com a configuração do Docker

Para configurar o Helm para usar as configurações de registro do Docker:

Linux

  1. Adicione as seguintes linhas a ~/.bashrc (ou ~/.bash_profile no macOS ou sempre que o shell armazenar variáveis de ambiente):

    export DOCKER_CONFIG="~/.docker"
    export HELM_REGISTRY_CONFIG="${DOCKER_CONFIG}/config.json"
    
    • DOCKER_CONFIG é a variável de ambiente do Docker para o local do arquivo de configuração do cliente Docker, config.json. O local padrão é ~/.docker.
    • HELM_REGISTRY_CONFIG é a variável de ambiente do Helm para o arquivo de configuração do registro. Ele aponta para o arquivo config.json do Docker.
  2. Execute o seguinte comando para carregar o arquivo atualizado .bashrc ou .bash_profile:

    source ~/.bashrc
    

Windows

Execute os seguintes comandos para configurar variáveis de ambiente do usuário para os arquivos de configuração do Docker e do Helm:

setx DOCKER_CONFIG %USERPROFILE%\.docker
setx HELM_REGISTRY_CONFIG %DOCKER_CONFIG%\config.json
  • DOCKER_CONFIG é a variável de ambiente do Docker para o local do arquivo de configuração do cliente Docker, config.json. O local padrão é %USERPROFILE%\.docker.
  • HELM_REGISTRY_CONFIG é a variável de ambiente do Helm para o arquivo de configuração do registro. Ele aponta para o arquivo config.json do Docker.

Agora o Helm está configurado para autenticar usando credenciais configuradas para seu cliente do Docker. Você já pode enviar por push o gráfico para o repositório.

Autenticar com um token

Para autenticar com um token de acesso:

  1. Crie uma conta de serviço para agir em nome do seu aplicativo ou escolha uma conta de serviço atual que você usa para automação.

    Você precisará do local do arquivo de chave da conta de serviço para configurar a autenticação com o Artifact Registry. Para contas existentes, é possível ver as chaves e criar novas chaves na página "Contas de serviço".

    Acessar a página "Contas de serviço"

  2. Conceda o papel apropriado do Artifact Registry à conta de serviço para fornecer acesso ao repositório.

  3. Atribua o local do arquivo de chave da conta de serviço à variável GOOGLE_APPLICATION_CREDENTIALS para que o auxiliar de credenciais do Artifact Registry possa conseguir sua chave ao se conectar com os repositórios.

    export GOOGLE_APPLICATION_CREDENTIALS=KEY-FILE
    

    Em que KEY-FILE é o caminho para o arquivo de chave da conta de serviço.

  4. Receba um token de acesso como credenciais quando se 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://us-central1-docker.pkg.dev
    

    Windows

    Execute este 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
    

    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.

Agora o Helm é autenticado com o Artifact Registry. Você já pode enviar o gráfico para o repositório.

Enviar o gráfico para o Artifact Registry

Depois de criar o gráfico e fazer a autenticação no repositório do Artifact Registry, envie o gráfico ao repositório.

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

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

Substitua PROJECT pelo ID do projeto do Google Cloud.

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

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

Extrair o gráfico do repositório

Não é possível usar um gráfico diretamente do Artifact Registry. Para usar o gráfico armazenado como uma imagem OCI, é preciso extrair a imagem, extrair os arquivos do gráfico e usar os arquivos extraídos para executar a implantação.

Atualmente, seu gráfico já está armazenado localmente no diretório hello-chart e na imagem do contêiner que você salvou localmente. Nesta seção, você removerá suas cópias locais do gráfico para que possa extrair o gráfico do Artifact Registry para um ambiente local limpo.

  1. Exclua a imagem do contêiner salva localmente com o seguinte comando:

    helm chart remove us-central1-docker.pkg.dev/PROJECT/quickstart-helm-repo/hello-chart:0.1.0
    
  2. Excluir o diretório local com os arquivos de gráfico

    rm -rf ./hello-chart
    
  3. Extraia a imagem do gráfico do Artifact Registry.

    helm chart pull us-central1-docker.pkg.dev/PROJECT/quickstart-helm-repo/hello-chart:0.1.0
    
  4. Extraia o gráfico da imagem para o diretório hello-chart.

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

Implantar o gráfico

No Helm, uma instância implantada do seu aplicativo se chama versão. Depois de adicionar um repositório à configuração do Helm, implante uma versão do gráfico.

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

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

    Quando o cluster for criado, você verá um resumo como este:

    NAME           LOCATION       MASTER_VERSION    MASTER_IP    MACHINE_TYPE   NODE_VERSION      NUM_NODES  STATUS
    chart-cluster  us-central1-a  1.16.15-gke.4901  34.68.170.9  n1-standard-1  1.16.15-gke.4901  3          RUNNING
    
  2. Consiga as credenciais do cluster para que kubectl possa acessá-lo:

    gcloud container clusters get-credentials --zone us-central1-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 ./hello-chart
    

    O comando retorna um resumo da implantação:

    NAME: hello-chart
    LAST DEPLOYED: Tue Jan 12 21:12:02 2021
    NAMESPACE: default
    STATUS: deployed
    REVISION: 1
    

Limpeza

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados neste guia de início rápido, siga estas etapas:

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

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

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

A seguir