Noções básicas do Helm
Ao implantar, controlar a versão e atualizar aplicativos, você precisa garantir que tenha as versões corretas de bibliotecas de software e configurações para que o aplicativo funcione conforme o esperado.
Digamos que sua equipe de desenvolvimento decida implantar o site da empresa de pet shop no Kubernetes. Como parte do processo, sua equipe cria arquivos de implantação, serviço e entrada baseados em YAML. Você codifica e mantém as informações em cada arquivo para cada ambiente de destino manualmente. No entanto, realizar a manutenção de três arquivos para cada ambiente é trabalhoso e aumenta a complexidade à medida que o aplicativo cresce.
Você pode usar o Helm para simplificar o processo de implantação do aplicativo e evitar configurações e variáveis de implantação embutidas em código.
O que é o Helm?
O Helm é um gerenciador de pacotes para Kubernetes que combina todos os recursos e informações de implantação de seu aplicativo em um único pacote de implantação.
Você pode pensar no Helm de forma semelhante ao gerenciador de pacotes do Windows no Windows, a APT (ferramenta de pacote avançada) no Linux ou o Homebrew no macOS. Você especifica o nome do aplicativo que deseja instalar, atualizar ou remover e o Helm cuida do processo.
Com o Helm, você não está limitado a instalar um único aplicativo por vez. O Helm permite que você crie arquivos de script YAML modelados e legíveis para gerenciar a implantação do aplicativo. Esses arquivos de modelo permitem especificar todas as dependências necessárias, o mapeamento de configuração e os segredos usados para gerenciar a implantação de um aplicativo com êxito.
O Helm usa quatro componentes para gerenciar implantações de aplicativo em um cluster do Kubernetes:
- O cliente do Helm
- Gráficos Helm
- Versões do Helm
- Repositórios do Helm
O que é o cliente do Helm?
O cliente do Helm é um binário instalado do cliente responsável por criar e enviar os arquivos de manifesto necessários para implantar um aplicativo do Kubernetes. O cliente é responsável pela interação entre o usuário e o cluster do Kubernetes.
O cliente do Helm está disponível para todos os principais sistemas operacionais e está instalado em seu PC cliente. No Azure, o cliente do Helm é pré-instalado no Cloud Shell e dá suporte a todos os recursos de segurança, identidade e autorização do Kubernetes.
Observação
Este módulo considera o uso do Helm v3. Você pode executar o comando helm version
para verificar a versão do Helm em execução no dispositivo cliente. Se você estiver executando o Helm v2, saiba que alguns dos parâmetros de comando nesse módulo serão diferentes.
O que é um gráfico do Helm?
Um gráfico do Helm é um pacote de implantação modelo que descreve um conjunto relacionado de recursos do Kubernetes. Ele contém todas as informações necessárias para criar e implantar os arquivos de manifesto para que um aplicativo seja executado em um cluster do Kubernetes.
Um gráfico do Helm consiste em vários arquivos e pastas para descrever o gráfico. Alguns dos componentes são necessários, enquanto outros são opcionais. Você escolhe quais componentes incluir conforme os requisitos de configuração de aplicativos.
A lista a seguir descreve os componentes de arquivo e pasta de um gráfico do Helm com os itens necessários em negrito:
Arquivo / Pasta | Descrição |
---|---|
Chart.yaml |
Um arquivo YAML que contém as informações sobre o gráfico. |
values.yaml |
Os valores de configuração padrão para o gráfico. |
templates/ |
Uma pasta que contém os modelos de implantação para o gráfico. |
LICENSE |
Um arquivo de texto sem formatação que contém a licença do gráfico. |
README.md |
Um arquivo de marcação que contém instruções sobre como usar o gráfico. |
values.schema.json ** |
Um arquivo de esquema para aplicar a estrutura no arquivo values.yaml. |
charts/ |
Uma pasta que contém todos os subgráficos para o gráfico principal. |
crds/ |
Definições de recursos personalizados. |
templates/Notes.txt |
Um arquivo de texto que contém observações de uso do modelo. |
O que é uma versão do Helm?
Uma versão do Helm é o aplicativo ou grupo de aplicativos implantados usando um gráfico. Sempre que você instala um gráfico, uma nova instância de um aplicativo é criada no cluster. Cada instância tem um nome de versão que lhe permite interagir com a instância específica do aplicativo.
Por exemplo, digamos que você instalou duas instâncias Nginx em seu cluster do Kubernetes usando um gráfico. Posteriormente, você decide atualizar a primeira instância do Nginx, mas não a segunda. Como as duas versões são diferentes, você pode atualizar a primeira versão sem afetar a segunda.
O que é um repositório do Helm?
Um repositório do Helm é um servidor HTTP dedicado que armazena informações em gráficos do Helm. O servidor hospeda um arquivo que descreve gráficos e de que local baixar cada gráfico.
O projeto do Helm hospeda vários gráficos públicos e existem muitos repositórios com gráficos que você pode reutilizar. Os repositórios do Helm simplificam a descoberta e a reutilização de pacotes do Helm.
Benefícios de usar o Helm
O Helm apresenta vários benefícios que simplificam a implantação de aplicativos e aumentam a produtividade no ciclo de vida de desenvolvimento e implantação de aplicativos nativos de nuvem. Com o Helm, você tem versões de aplicativo que são:
- Repetível,
- Confiável,
- Gerenciáveis em ambientes diversos e complexos, e
- Reutilizáveis em diferentes equipes de desenvolvimento.
Um gráfico do Helm padroniza a implantação de um aplicativo usando a lógica do modelo empacotado que é parametrizada por valores de entrada definidos. Esse design de pacote controlado por modelo oferece uma abordagem independente do ambiente para implantar e compartilhar aplicativos nativos de nuvem.