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:
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.
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.
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.
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.
Helm está fortemente vinculado à versão do Kubernetes, então é essencial escolher uma versão compatível com seu cluster. Consulte a tabela de compatibilidade Helm-Kubernetes na documentação oficial.
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
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-https caso 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
helm version
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 version
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.1
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
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.
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.
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.
Você pode ver a lista de todos os repositórios conectados com:
helm repo list
Exemplo de saída:

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.
Após configurar os repositórios, você pode buscar e instalar aplicações no Kubernetes usando Helm.
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
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
Para verificar o status da aplicação:
kubectl get pods
Para obter informações específicas do release:
helm status <release_name>
Para customizar parâmetros do chart:
helm install my-nginx bitnami/nginx --set service.type=NodePort
Para remover uma aplicação e seus recursos:
helm uninstall <release_name>