By Savic, Brian Boucheron and Kathryn Hancox

O Helm é um gerenciador de pacotes para o Kubernetes que permite que os desenvolvedores e operadores configurem e implantem mais facilmente aplicativos nos clusters do Kubernetes.
Neste tutorial, você vai configurar o Helm 3 e usá-lo para instalar, reconfigurar, reverter e excluir uma instância do aplicativo Painel de Controle (Dashboard) do Kubernetes. O painel é uma GUI oficial do Kubernetes baseada em Web.
Para obter uma visão geral abstrata do Helm e de seu ecossistema de empacotamento, leia nosso artigo Uma introdução ao Helm.
Para este tutorial, você precisará de:
Um cluster do Kubernetes com controle de acesso baseado em função (RBAC) habilitado. O Helm 3.1 é compatível com os clusters das versões 1.14 a 1.17. Para obter mais informações, consulte a página de Versões do Helm.
A ferramenta kubectl de linha de comando instalada em sua máquina local, configurada para se conectar ao seu cluster. Você pode ler mais sobre como instalar o kubectl na documentação oficial.
Você pode testar sua conectividade com o seguinte comando:
- kubectl cluster-info
Se não houver erros, você está conectado ao cluster. Se acessar vários clusters com o kubectl, certifique-se de verificar se você selecionou o contexto de cluster correto:
- kubectl config get-contexts
OutputCURRENT   NAME                    CLUSTER                 AUTHINFO                      NAMESPACE
*         do-fra1-helm3-example   do-fra1-helm3-example   do-fra1-helm3-example-admin
Neste exemplo, o asterisco (*) indica que estamos conectados ao cluster do-fra1-helm3-example. Para trocar os clusters execute:
- kubectl config use-context context-name
Quando estiver conectado ao cluster correto, continue para o Passo 1 para começar a instalar o Helm.
Primeiro, você instalará o utilitário de linha de comando do helm em sua máquina local. O Helm fornece um script que lida com o processo de instalação no MacOS, Windows ou Linux.
Mude para um diretório gravável e baixe o script do repositório do GitHub do Helm:
- cd /tmp
- curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
Crie o executável do script com o chmod:
- chmod u+x get_helm.sh
Você pode usar o seu editor de texto favorito para abrir o script e inspecioná-lo, a fim de garantir que esteja seguro. Quando estiver satisfeito, execute-o:
- ./get_helm.sh
Você pode ser solicitado a colocar sua senha. Digite a senha e pressione ENTER para continuar.
O resultado ficará parecido com este:
OutputDownloading https://get.helm.sh/helm-v3.1.2-linux-amd64.tar.gz
Preparing to install helm into /usr/local/bin
helm installed into /usr/local/bin/helm
Agora que o Helm está instalado, você está pronto para usar o Helm para instalar seu primeiro chart.
Os pacotes de software do Helm são chamados de charts. Existe um repositório de charts coletados chamado stable, constituído em sua maioria, por charts comuns, que podem ser vistos no repositório GitHub deles. O Helm não vem pré-configurado para esse repositório. Assim, será necessário adicioná-lo manualmente. Agora, como um exemplo, você instalará o Painel de Controle (Dashboard) do Kubernetes.
Adicione o repositório stable executando:
- helm repo add stable https://kubernetes-charts.storage.googleapis.com
O resultado será:
Output"stable" has been added to your repositories
Em seguida, use o helm para instalar o pacote kubernetes-dashboard a partir do repositório stable:
- helm install dashboard-demo stable/kubernetes-dashboard --set rbac.clusterAdminRole=true
O parâmetro --set permite que você personalize as variáveis de chart, as quais o chart expõe para que você possa personalizar sua configuração. Aqui, defina a variável rbac.clusterAdminRole para true, concedendo ao Painel de Controle (Dashboard) do Kubertnetes acesso total ao seu cluster.
O resultado se parecerá com o seguinte:
OutputNAME: dashboard-demo
LAST DEPLOYED: Tue Mar 31 15:04:19 2020
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
...
Observe a linha NAME, em destaque no exemplo de resultado acima. Neste caso, você especificou o nome dashboard-demo. Esse é o nome da versão. Um release do Helm é uma implantação única de um chart com uma configuração específica. Você pode implantar várias versões do mesmo chart, cada qual com sua própria configuração.
Você pode listar todas as versões no cluster:
- helm list
O resultado será como este:
OutputNAME            NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                           APP VERSION
dashboard-demo  default         1               2020-03-31 15:04:19.324774799 +0000 UTC deployed        kubernetes-dashboard-1.10.1     1.10.1
Agora, use o kubectl para verificar se um novo serviço foi implantado no cluster:
- kubectl get services
O resultado ficará parecido com este:
OutputNAME                                  TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE
dashboard-demo-kubernetes-dashboard   ClusterIP   10.245.115.214   <none>        443/TCP   4m44s
kubernetes                            ClusterIP   10.245.0.1       <none>        443/TCP   19m
Note que, por padrão, o nome de serviço correspondente à versão é uma combinação do nome da versão do Helm e o nome do chart.
Agora que você implantou o aplicativo, use o Helm para alterar sua configuração e atualizar a implantação.
O comando helm upgrade pode ser usado para atualizar uma versão com um chart novo ou atualizado, ou atualizar suas opções de configuração (variáveis).
Você fará uma alteração simples à versão do dashboard-demo para demonstrar o processo de atualização e reversão: atualizaremos o nome do serviço do painel para apenas kubernetes-dashboard, em vez de dashboard-demo-kubernetes-dashboard.
O chart kubernetes-dashboard fornece uma opção de configuração fullnameOverride para controlar o nome do serviço. Para renomear a versão, execute helm upgrade com esta opção definida:
- helm upgrade dashboard-demo stable/kubernetes-dashboard --set fullnameOverride="kubernetes-dashboard" --reuse-values
Ao enviar o argumento --reuse-values, você assegura que as variáveis de chart previamente set (definidas) não serão redefinidas pelo processo de atualização.
Você verá um resultado parecido com o passo inicial do helm install.
Verifique se seus serviços do Kubernetes refletem os valores atualizados:
- kubectl get services
O resultado ficará parecido com o seguinte:
OutputNAME                   TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE
kubernetes             ClusterIP   10.245.0.1      <none>        443/TCP   38m
kubernetes-dashboard   ClusterIP   10.245.49.157   <none>        443/TCP   8s
Note que o nome do serviço foi atualizado para o novo valor.
Nota: neste ponto, você pode carregar o Painel do Kubernetes no seu navegador e verificá-lo. Para fazer isso, execute primeiro o seguinte comando:
- kubectl proxy
Isso cria um proxy que permite que você acesse recursos de cluster remotos do seu computador local. Com base nas instruções anteriores, o seu serviço de painel é nomeado como kubernetes-dashboard e está executando no namespace default. Agora, você pode acessar o painel no seguinte URL:
http://localhost:8001/api/v1/namespaces/default/services/https:kubernetes-dashboard:https/proxy/
As instruções para a utilização prática do painel estão fora do escopo deste tutorial, mas você pode ler os documentos oficiais do Painel de Controle (Dashboard) do Kubernetes para obter mais informações.
Em seguida, você verá a capacidade do Helm para reverter e excluir versões.
Quando você atualizou a versão dashboard-demo no passo anterior, você criou uma segunda revisão da versão. O Helm retém todos os detalhes das versões anteriores, para o caso de você ter que reverter para uma configuração ou chart anteriores.
Use o helm list para verificar a versão novamente:
- helm list
Você verá o seguinte resultado:
OutputNAME           	REVISION	UPDATED                 	STATUS  	CHART                     	NAMESPACE
dashboard-demo	2       	Wed Aug  8 20:13:15 2018	DEPLOYED	kubernetes-dashboard-0.7.1	default
A coluna REVISION informa a você que essa agora será a segunda revisão.
Use o helm rollback para reverter para a primeira revisão:
- helm rollback dashboard-demo 1
Você deve ver o seguinte resultado, indicando que a reversão foi bem-sucedida:
OutputRollback was a success! Happy Helming!
Neste ponto, se você executar o kubectl get services novamente, verá que o nome do serviço mudou para seu valor anterior. O Helm reimplantou o aplicativo com a configuração da revisão 1.
As versões do Helm podem ser excluídas com o comando helm delete:
- helm delete dashboard-demo
O resultado será:
Outputrelease "dashboard-demo" uninstalled
Tente listar as versões do Helm:
- helm list
Verá que não há versões disponíveis:
OutputNAME    NAMESPACE       REVISION        UPDATED STATUS  CHART   APP VERSION
Agora, a versão foi realmente excluída e você pode reutilizar seu nome.
Neste tutorial, você instalou a ferramenta de linha de comando do helm e explorou a instalação, a atualização, a reversão e a exclusão de charts e versões do Helm, gerenciando o chart kubernetes-dashboard.
Para saber mais sobre o Helm e os charts do Helm, consulte a documentação oficial do Helm.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
Expert in cloud topics including Kafka, Kubernetes, and Ubuntu.
Senior Technical Writer at DigitalOcean
Former Senior Technical Editor at DigitalOcean, with a strong focus on DevOps and System Administration content. Areas of expertise include Terraform, PyTorch, Python, and Django.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.
Full documentation for every DigitalOcean product.
The Wave has everything you need to know about building a business, from raising funding to marketing your product.
Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.
New accounts only. By submitting your email you agree to our Privacy Policy
Scale up as you grow — whether you're running one virtual machine or ten thousand.
Sign up and get $200 in credit for your first 60 days with DigitalOcean.*
*This promotional offer applies to new accounts only.