Configurar e usar o Helm


Helm é uma ferramenta para gerenciar aplicações Kubernetes, simplificando a implantação, atualização e manutenção de aplicações complexas compostas por múltiplos objetos Kubernetes. Essencialmente, Helm pode ser comparado a um gerenciador de pacotes para Kubernetes, similar ao apt ou yum no Linux, mas adaptado especificamente para clusters Kubernetes.

Helm facilita várias tarefas importantes:

  • Simplificar a implantação

Aplicações podem ser compostas por dezenas ou até centenas de objetos Kubernetes, como pods, services, configurações e outros. Helm consolida tudo em um único pacote chamado chart, que pode ser implantado com um único comando. Isso reduz significativamente a complexidade de configurar aplicações manualmente.

  • Controlar versões de aplicações

Cada chart pode ter múltiplas versões, tornando fácil reverter para uma versão anterior ou atualizar uma aplicação. Helm suporta controle de versões, rastreia alterações em aplicações implantadas (releases) e permite rollback quando necessário.

  • Reutilizar configurações

Helm utiliza templates para gerar arquivos de configuração Kubernetes, facilitando a personalização de parâmetros como número de réplicas, configurações de rede, bancos de dados e outras variáveis. Esses parâmetros ficam armazenados no arquivo values.yaml. Isso permite usar o mesmo chart em diferentes ambientes (desenvolvimento, teste, produção) com alterações mínimas.

  • Gerenciar repositórios centralizados

Charts são armazenados em repositórios, que podem ser públicos ou privados. Helm permite adicionar, atualizar e instalar aplicações diretamente de diferentes repositórios. Por exemplo, o popular repositório Bitnami contém muitos charts prontos para diversos serviços.

Instalar o Helm
Copiar link

Linux
Copiar link

Baixe o script oficial de instalação automatizada:

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 && chmod 700 get_helm.sh

Execute o script para instalar a versão mais recente:

./get_helm.sh

Para especificar uma versão compatível com seu cluster Kubernetes:

./get_helm.sh -v 3.14.1

Instalar via repositório no Ubuntu

  1. Adicione a chave de assinatura do repositório Helm:

curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null
  1. Instale apt-transport-https caso não esteja instalado:

sudo apt install apt-transport-https --yes
  1. Adicione o repositório Helm ao APT:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
  1. Atualize a lista de pacotes:

sudo apt update
  1. Instale Helm:

sudo apt install helm
  1. Especifique uma versão compatível:

sudo apt install helm=3.14.2-1
  1. Verifique a instalação:
helm version

Windows
Copiar link

  1. Execute o PowerShell como administrador

  2. Instale Helm:

winget install Helm.Helm
  1. Instale uma versão compatível:

winget install Helm.Helm -v 3.14.1
  1. Verifique a versão:

helm version

MacOS
Copiar link

  1. Baixe o script de instalação automatizada:

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 && chmod 700 get_helm.sh
  1. Execute para instalar a versão mais recente:

./get_helm.sh
  1. Para instalar uma versão compatível:

./get_helm.sh -v 3.14.1

Instalar via Homebrew

Se você usa o Homebrew, pode instalar o Helm com ele. Note que apenas a versão mais recente do Helm está disponível nos repositórios do Homebrew. Para instalar, execute:

brew install helm

Verifique a versão:

helm version

Configurar repositórios Helm
Copiar link

Helm utiliza repositórios para armazenar e distribuir charts — pacotes de aplicações que podem ser instalados no Kubernetes. Os repositórios ajudam a gerenciar aplicações de fontes centralizadas, facilitando a instalação, atualização e remoção.

Adicionar um repositório
Copiar link

Para instalar uma aplicação a partir de um repositório remoto, primeiro é necessário adicioná-lo à lista de fontes disponíveis. Isso é feito usando o comando helm repo add. Por exemplo, para adicionar o popular repositório Bitnami, execute:

helm repo add bitnami https://charts.bitnami.com/bitnami

O Helm suporta repositórios públicos e privados. Repositórios privados podem exigir credenciais de autenticação, como token ou usuário e senha.

Atualizar repositórios
Copiar link

Os charts nos repositórios podem ser atualizados, então, para garantir que você tenha as versões mais recentes, é necessário atualizar periodicamente as informações do repositório. Use o comando:

helm repo update

Este comando sincroniza o índice local de charts com o conteúdo atual dos repositórios remotos.

Listar repositórios disponíveis
Copiar link

Você pode ver a lista de todos os repositórios conectados com:

helm repo list

Exemplo de saída:

3b891da9 F207 45e6 94a3 945d3cace084.png

Remover um repositório
Copiar link

Se um repositório não for mais necessário, você pode removê-lo usando o comando helm repo remove. Por exemplo, para remover o repositório Bitnami, execute:

helm repo remove bitnami

Este comando apenas remove o repositório da configuração local do Helm. Os charts e as aplicações instaladas não são afetados.

Instalar aplicações com Helm
Copiar link

Após configurar os repositórios, você pode buscar e instalar aplicações no Kubernetes usando Helm.

Buscar aplicações em repositórios
Copiar link

Para encontrar um chart específico nos repositórios conectados, use:

helm search repo <application_name>

Por exemplo, para buscar NGINX:

helm search repo nginx

Instalar uma aplicação
Copiar link

Para instalar uma aplicação, use:

helm install <release_name> <repository>/<chart_name>

Exemplo, para instalar NGINX do repositório Bitnami:

helm install my-nginx bitnami/nginx

Verificar o status de uma aplicação instalável
Copiar link

Para verificar o status da aplicação:

kubectl get pods

Para obter informações específicas do release:

helm status <release_name>

Personalizar parâmetros de instalação
Copiar link

Para customizar parâmetros do chart:

helm install my-nginx bitnami/nginx --set service.type=NodePort

Desinstalar uma aplicação
Copiar link

Para remover uma aplicação e seus recursos:

helm uninstall <release_name>