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