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
-
Faça login na sua conta do Google.
Se você ainda não tiver uma, inscreva-se.
-
No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
-
Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como confirmar se o faturamento está ativado para o projeto.
- Ative as APIs Artifact Registry, Google Kubernetes Engine.
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:
Acesse o Console do Google Cloud.
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:
Instale o SDK do Cloud , que inclui a ferramenta de linha de comando
gcloud
. Para atualizar uma instalação atual, execute o comandogcloud components update
.Instale o Helm 3, se ele ainda não estiver instalado.
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
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
Abra a página Repositórios no Console do Cloud.
Clique em Criar repositório.
Especifique
quickstart-helm-repo
como o nome do repositório.Escolha Docker como o formato.
Em Tipo de local, selecione Região e escolha o local
us-central1
.Clique em Criar.
O repositório é adicionado à lista de repositórios.
gcloud
Execute o seguinte comando para criar um novo repositório do Docker chamado
quickstart-helm-repo
no localus-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"
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
.
- Mude para um diretório em que você quer criar o gráfico.
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.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 arquivohello-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 emChart.yaml
sincronizados com as tags da imagem do contêiner.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
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 arquivoconfig.json
do Docker.
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 arquivoconfig.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:
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".
Conceda o papel apropriado do Artifact Registry à conta de serviço para fornecer acesso ao repositório.
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.
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.
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
Excluir o diretório local com os arquivos de gráfico
rm -rf ./hello-chart
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
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.
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
Consiga as credenciais do cluster para que
kubectl
possa acessá-lo:gcloud container clusters get-credentials --zone us-central1-a chart-cluster
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:
Exclua o repositório que você criou com o seguinte comando:
gcloud artifacts repositories delete quickstart-helm-repo --location=us-central1
Exclua o cluster criado:
gcloud container clusters delete --zone=us-central1-a chart-cluster
A seguir
- Saiba mais sobre como trabalhar com gráficos.
- Saiba mais sobre o Helm (em inglês).
- Leia nossos recursos sobre DevOps e conheça nosso programa de pesquisa.