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.shExecute o script para instalar a versão mais recente:
./get_helm.shPara especificar uma versão compatível com seu cluster Kubernetes:
./get_helm.sh -v 3.14.1Instalar via repositório no Ubuntu
-
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-
Instale
apt-transport-httpscaso não esteja instalado:
sudo apt install apt-transport-https --yes-
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-
Atualize a lista de pacotes:
sudo apt update-
Instale Helm:
sudo apt install helm-
Especifique uma versão compatível:
sudo apt install helm=3.14.2-1- Verifique a instalação:
helm versionWindows Copiar link
-
Execute o PowerShell como administrador
-
Instale Helm:
winget install Helm.Helm-
Instale uma versão compatível:
winget install Helm.Helm -v 3.14.1-
Verifique a versão:
helm versionMacOS Copiar link
-
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-
Execute para instalar a versão mais recente:
./get_helm.sh-
Para instalar uma versão compatível:
./get_helm.sh -v 3.14.1Instalar 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 helmVerifique a versão:
helm versionConfigurar 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/bitnamiO 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 updateEste 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 listExemplo de saída:

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 bitnamiEste 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 nginxInstalar 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/nginxVerificar o status de uma aplicação instalável Copiar link
Para verificar o status da aplicação:
kubectl get podsPara 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=NodePortDesinstalar uma aplicação Copiar link
Para remover uma aplicação e seus recursos:
helm uninstall <release_name>