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
- Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloud, 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Artifact Registry, Google Kubernetes Engine APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Artifact Registry, Google Kubernetes Engine APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
Funções exigidas
Para receber as permissões necessárias
para criar e gerenciar gráficos do Helm em repositórios de pacotes do Docker do Artifact Registry,
peça ao administrador para conceder a você o papel do IAM de
Administrador do Artifact Registry (roles/artifactregistry.admin)
no seu projeto.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.
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 shell para gerenciar recursos hospedados no Google Cloud. Ele vem pré-instalado com Docker, 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 a CLI gcloud 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.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 versionpara verificar sua versão.
Como configurar um shell local
Para instalar a CLI gcloud e o Helm, siga estas etapas:
Instale a CLI da gcloud. Para atualizar uma instalação atual, execute o comando
gcloud components update.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 versionpara verificar sua versão.
Criar um repositório
Crie um repositório do Docker para armazenar o gráfico de exemplo deste guia de início rápido.
Console
Abra a página Repositórios no console do Google Cloud .
Clique em Criar repositório.
Especifique
quickstart-helm-repocomo o nome do repositório.Escolha Docker como o formato.
Em Tipo de local, selecione Região e escolha o local
us-west1.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-repono localus-west1com a descrição "repositório do docker".gcloud artifacts repositories create quickstart-helm-repo --repository-format=docker \ --location=us-west1 --description="Helm repository"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.
- Mude para o diretório em que você quer criar o gráfico.
Execute o comando a seguir para criar o gráfico:
helm create hello-chartO Helm cria um diretório chamado
hello-chartcom um conjunto padrão de arquivos de gráfico. Um dos arquivos é Chart.yaml, que inclui informações sobre o gráfico.Empacote o gráfico e um arquivo.
helm package hello-chart/O Helm cria um arquivo chamado
hello-chart-0.1.0.tgzusando o nome do gráfico e o número da versão emChart.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 Configurar a autenticação para o Helm para mais informações sobre autenticação.
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:
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://us-west1-docker.pkg.devWindows
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/REPOSITORYOnde
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://us-west1-docker.pkg.dev/PROJECT/quickstart-helm-repo
Substitua PROJECT pelo Google Cloud 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: us-west1-docker.pkg.dev/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 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, você pode implantar uma versão do gráfico.
Crie um cluster chamado
chart-clusterpara sua implantação com o comando:gcloud container clusters create --zone us-west1-a chart-clusterQuando 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: 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: RUNNINGReceba as credenciais para que
kubectlpossa acessar o cluster:gcloud container clusters get-credentials --zone us-west1-a chart-clusterExecute o comando a seguir para implantar uma versão do
hello-chartusando 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.0O 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 conta do Google Cloud pelos recursos usados nesta página, siga as etapas abaixo.
Exclua o repositório criado com o seguinte comando:
gcloud artifacts repositories delete quickstart-helm-repo --location=us-west1Exclua o cluster que você criou:
gcloud container clusters delete --zone=us-west1-a chart-cluster
A seguir
- Saiba mais sobre como trabalhar com gráficos.
- Saiba mais sobre o Helm.
- Leia nossos recursos sobre DevOps e conheça nosso programa de pesquisa.