Tutorial

Como instalar softwares em clusters do Kubernetes com o gerenciador de pacotes Helm 3

Published on May 12, 2020
Português
Como instalar softwares em clusters do Kubernetes com o gerenciador de pacotes Helm 3

Introdução

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.

Pré-requisitos

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:

    1. 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:

    1. kubectl config get-contexts
    Output
    CURRENT 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:

    1. kubectl config use-context context-name

Quando estiver conectado ao cluster correto, continue para o Passo 1 para começar a instalar o Helm.

Passo 1 — Como 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:

  1. cd /tmp
  2. 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:

  1. 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:

  1. ./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:

Output
Downloading 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.

Passo 2 — Instalando um chart do Helm

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:

  1. 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:

  1. 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:

Output
NAME: 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:

  1. helm list

O resultado será como este:

Output
NAME 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:

  1. kubectl get services

O resultado ficará parecido com este:

Output
NAME 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.

Passo 3 — Atualizando uma versã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:

  1. 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:

  1. kubectl get services

O resultado ficará parecido com o seguinte:

Output
NAME 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:

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

Passo 4 — Revertendo e excluindo uma versão

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:

  1. helm list

Você verá o seguinte resultado:

Output
NAME 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:

  1. helm rollback dashboard-demo 1

Você deve ver o seguinte resultado, indicando que a reversão foi bem-sucedida:

Output
Rollback 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:

  1. helm delete dashboard-demo

O resultado será:

Output
release "dashboard-demo" uninstalled

Tente listar as versões do Helm:

  1. helm list

Verá que não há versões disponíveis:

Output
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION

Agora, a versão foi realmente excluída e você pode reutilizar seu nome.

Conclusão

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.

Learn more about us


About the authors
Default avatar
Savic

author




Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


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!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel