Helm
Helm faz parte da CNCF e é um projeto graduado baseado em golang.
Antes de mergulhar no mundo do Helm e descobrir como ele pode simplificar a implantação de aplicações no Kubernetes, é importante entender o que é necessário para colocar uma aplicação em execução neste ambiente.
Elementos Cruciais para a Implantação
- Imagem de Container: A pedra angular de qualquer aplicação em container é a própria imagem. Isso pode envolver o uso de uma imagem de container pré-existente ou a criação de uma personalizada para atender às necessidades específicas da sua aplicação.
- Manifestos .yaml: São arquivos essenciais que descrevem como devem ser criados os recursos como deployments, replica sets, serviços, ingressos, e contas de serviço no Kubernetes.
- kubectl create: Um comando utilizado para aplicar os manifestos YAML e efetivamente criar os recursos dentro do cluster Kubernetes.
Suponhamos que tenhamos um sistema composto por múltiplos serviços, como uma API REST, um banco de dados, e um serviço de mensagem pub/sub.
Neste cenário, a complexidade dos microserviços se torna aparente, já que cada um deles requer seu próprio conjunto de manifestos, resultando na geração de uma variedade de objetos com distintas configurações no Kubernetes.
Se a ideia for replicar a implantação desta aplicação em um cluster Kubernetes diferente, será necessário revisar e possivelmente modificar vários manifestos, o que pode tornar o processo tanto trabalhoso quanto suscetível a erros.
Surge então o questionamento: como podemos simplificar esse procedimento? A resposta está no uso do Helm, que é uma ferramenta de gerenciamento de pacotes para Kubernetes.
Helm: O Gerenciador de Pacotes do Kubernetes
Assim como outras ferramentas de gerenciamento de pacotes conhecidas como o apt (Debian), yum (Red Hat) e pacman (Arch Linux) que facilitam a instalação, configuração e atualização de softwares em sistemas operacionais, o Helm desempenha um papel análogo no ecossistema do Kubernetes.
O Helm permite a instalação de aplicações complexas de uma maneira muito mais acessível e pré-configurada, minimizando o esforço e o potencial de erro envolvido na gestão manual de múltiplos manifestos YAML.
Utilizando a analogia com os gerenciadores de pacotes de sistemas operacionais, o Helm geralmente segue uma lógica de comandos semelhante. Isso torna o processo de utilização intuitivo para aqueles que já estão acostumados com tais ferramentas em outros contextos.
# para add um repo
helm repo add
# procurar um repo
helm search repo
# instalar um chart
helm install
# fazer o update do chart
helm update
# caso queira voltar uma aplicacao
helm rollback
# criar um chart
helm create
# verificar se esta instalado
helm status
Em síntese, o Helm é o aliado perfeito para gerenciar aplicações no Kubernetes de forma eficiente e padronizada, propiciando uma implantação robusta e menos propensa a falhas.
Helm Charts e Repositórios
Prosseguindo na analogia com gerenciadores de pacotes convencionais, temos que, tal como estes dispõem de repositórios onde pacotes são armazenados e catalogados para facilitar a busca e a instalação, o Helm utiliza uma abordagem semelhante para gerenciar os chamados charts.
O Que São Helm Charts?
Helm Charts são, em essência, pacotes pré-configurados que contêm um conjunto de arquivos e templates de manifestos do Kubernetes. Eles servem como moldes que esperam ser complementados por configurações específicas, que irão definir como a aplicação deve ser instalada e executada no cluster. Os charts contêm tudo o que é necessário para a implantação consistente de uma aplicação, incluindo:
- Templates de recursos do Kubernetes.
- Valores padrões que podem ser sobrescritos.
- Metadados sobre o chart, como versão e uma descrição.
- Dependências que o chart possa ter de outros charts.
Repositórios Helm
Para facilitar a descoberta e o compartilhamento de charts, o Helm utiliza repositórios. Repositórios Helm são coleções de charts hospedados em um servidor que podem ser pesquisados e instalados por usuários. Esses repositórios podem ser públicos, como o Helm Hub, onde você encontrará uma ampla gama de charts desenvolvidos pela comunidade, ou privados, para uso interno dentro de uma organização.
Quando deseja-se utilizar um chart, o primeiro passo é geralmente adicionar o repositório que contém o chart desejado, usando o comando helm repo add
. Uma vez que o repositório está adicionado ao seu ambiente local, você pode buscar e instalar charts a partir deste repositório.
Além de simplificar a publicação e a compartilhamento de aplicações, os charts Helm também promovem a reutilização de código e melhores práticas, visto que a comunidade pode contribuir e aperfeiçoar os charts ao longo do tempo.
Em conclusão, os charts e repositórios Helm são ferramentas poderosas que permitem aos usuários e desenvolvedores gerenciar aplicações Kubernetes de maneira mais eficiente, mantendo a organização e padronização das implantações em diferentes ambientes e de diversas aplicações.