Noções básicas do leme

Concluído

Ao implantar, controlar o controle de versão e atualizar aplicativos, você precisa garantir que tenha as versões corretas das bibliotecas e configurações de software 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, a equipa cria ficheiros de implementação, serviço e entrada baseados no YAML. Você codifica e mantém manualmente as informações em cada arquivo para cada ambiente de destino. No entanto, manter três arquivos para cada ambiente é complicado e aumenta em complexidade à medida que o aplicativo cresce.

A diagram that shows a container deployed to a Kubernetes node using a deployment, a service, and an ingress YAML file.

Pode utilizar o Helm para simplificar o processo de implementação da aplicação e evitar variáveis e definições de implementação codificadas.

O que é o Helm?

O Helm é um gestor de pacotes do Kubernetes que combina todos os recursos de aplicações e informações de implementação num único pacote de implementação.

A diagram shows a containerized app deployed to a Kubernetes cluster using a Helm chart.

Você pode pensar no Helm de forma semelhante ao Gerenciador de Pacotes do Windows no Windows, à Advanced Package Tool (apt) no Linux ou ao Homebrew no macOS. O utilizador especifica o nome da aplicação que pretende instalar, atualizar ou remover e o Helm efetua o processo.

Com o Helm, você não está limitado a instalar um único aplicativo de cada vez. O Helm permite-lhe criar ficheiros de script YAML de modelo e legíveis por humanos para gerir a implementação da aplicação. Estes ficheiros de modelo permitem-lhe especificar todas as dependências, mapeamentos de configuração e segredos utilizados para gerir a implementação de uma aplicação.

O Helm usa quatro componentes para gerenciar implantações de aplicativos em um cluster Kubernetes:

  • O cliente Helm
  • Gráficos Helm
  • Versões do Helm
  • Repositórios do Helm

O que é o cliente do Helm?

O cliente Helm é um cliente binário instalado responsável por criar e enviar os arquivos de manifesto necessários para implantar um aplicativo Kubernetes. O cliente é responsável pela interação entre o utilizador e o cluster do Kubernetes.

A diagram shows the communication between three Helm components to create a Helm release; the client, chart, and repository.

O cliente do Helm está disponível para todos principais sistemas operativos e é instalado no PC cliente. No Azure, o cliente Helm é pré-instalado no Cloud Shell e dá suporte a todos os recursos de segurança, identidade e autorização do Kubernetes.

Nota

Este módulo assume o uso do Helm v3. Pode executar o comando helm version para verificar a versão do Helm no dispositivo cliente. Se tiver o Helm v2, tenha em atenção que alguns parâmetros de comandos neste módulo serão diferentes.

O que é um gráfico Helm?

Um gráfico Helm é um pacote de implantação de modelo que descreve um conjunto relacionado de recursos do Kubernetes. Contém todas as informações necessárias para criar e implementar os ficheiros de manifesto para executar uma aplicação num cluster do Kubernetes.

Um gráfico Helm consiste em vários ficheiros e pastas que descrevem o gráfico. Alguns dos componentes são necessários e outros são opcionais. Os componentes são escolhidos com base nos requisitos de configuração de aplicações.

A lista a seguir descreve os componentes de arquivo e pasta de um gráfico Helm com os itens necessários em negrito:

Ficheiro/Pasta Description
Chart.yaml Um ficheiro YAML que contém informações sobre o gráfico.
values.yaml Os valores de configuração predefinidos do gráfico.
templates/ Uma pasta que contém os modelos de implementação do gráfico.
LICENSE Um ficheiro de texto simples que contém a licença do gráfico.
README.md Um ficheiro de markdown que contém instruções sobre como utilizar o gráfico.
values.schema.json** Um ficheiro de esquema para aplicar a estrutura no ficheiro values.yaml.
charts/ Uma pasta que contém todos os subgráficos do gráfico principal.
crds/ Definições de Recursos Personalizados.
templates/Notes.txt Um arquivo de texto que contém notas de uso do modelo.

O que é uma versão do Helm?

Uma versão Helm é o aplicativo ou grupo de aplicativos implantados usando um gráfico. Sempre que instala um gráfico, é criada uma nova instância de uma aplicação no cluster. Todas as instâncias têm um nome de versão que lhe permite interagir com instâncias de aplicações específicas.

A diagram shows the communication between three Helm components to create a Helm release: the client, chart, and repository. The release is highlighted.

Por exemplo, digamos que você instalou duas instâncias Nginx em seu cluster Kubernetes usando um gráfico. Mais tarde, decide atualizar a primeira instância do Nginx, mas não a segunda. Uma vez que as duas versões são diferentes, pode atualizar a primeira versão sem afetar a segunda.

O que é um repositório Helm?

Um repositório Helm é um servidor HTTP dedicado que armazena informações em gráficos Helm. O servidor hospeda um arquivo que descreve gráficos e onde baixar cada gráfico.

A diagram shows the communication between three Helm components to create a Helm release: the client, chart, and repository. The repository is highlighted.

O projeto Helm aloja vários gráficos públicos e existem vários repositórios a partir dos quais pode reutilizar gráficos. Os repositórios Helm facilitam a descoberta e reutilização de pacotes Helm.

Benefícios de usar o Helm

O Helm apresenta várias vantagens que facilitam a implementação de aplicações e melhoram a produtividade no ciclo de vida de implementação e desenvolvimento de aplicações nativas de cloud. Com o Helm, tem versões de aplicações que são:

  • Repetível,
  • Fiável,
  • Gerenciável em ambientes múltiplos e complexos, e
  • Reutilizáveis em diferentes equipas de desenvolvimento.

Um gráfico Helm padroniza a implantação de um aplicativo usando a lógica de modelo empacotada que é parametrizada por valores de entrada definidos. Esse design de pacote orientado por modelo fornece uma abordagem independente do ambiente para implantar e compartilhar aplicativos nativos da nuvem.