Usar GitOps para configurar clusters do Kubernetes habilitado para Azure Arc

Concluído

Um importante benefício do Azure Arc é facilitar a implementação dos princípios de DevOps, que aplicam práticas de desenvolvimento estabelecidas às operações. DevOps aumenta a agilidade sem comprometer a estabilidade do ambiente de TI.

O Kubernetes habilitado para Azure Arc dá suporte a GitOps, uma prática de DevOps que simplifica os lançamentos de aplicativos reduzindo o esforço de implantação manual.

Nesta unidade, você aprenderá sobre GitOps e como configurá-lo para clusters do Kubernetes habilitado para Azure Arc.

GitOps para Kubernetes habilitado para Arc

O GitOps facilita a padronização das configurações do Kubernetes em toda a sua organização, inclusive no Kubernetes habilitado para Arc. Um repositório ou outro arquivo de origem hospeda arquivos de configuração que representam o estado esperado de um recurso. Por exemplo, a configuração de linha de base pode incluir o modelo de delegação e as configurações de monitoramento e registro em log e as características dos serviços que abrangem todo o cluster.

Um agente em execução no cluster do Kubernetes monitora o estado do repositório. Quando há uma alteração de configuração, o agente efetua pull dos arquivos atualizados para o cluster e aplica a nova configuração, garantindo que o cluster permaneça no estado desejado.

Os clusters do Kubernetes habilitado para Azure Arc dependem do Flux, um operador de implantação do GitOps popular e de código aberto que automatiza as implantações de configuração no cluster. O Flux dá suporte a fontes de arquivos comuns, como repositórios Git, repositórios Helm e buckets, além de aos tipos de modelo de configuração YAML, Helm e Kustomize.

O diagrama a seguir mostra um fluxo de GitOps que usa o Flux para implantar configurações de cluster e atualizações de aplicativo.

Diagram of the GitOps flow showing an application update.

Configurar GitOps

O GitOps associa o cluster do Kubernetes habilitado para Arc a uma ou mais fontes de arquivo, como um repositório Git. Cada repositório pode conter as configurações de qualquer recurso válido do Kubernetes, como namespaces ou implantações na forma de arquivos de manifesto.

O diagrama a seguir mostra o processo de aplicação das configurações baseadas no GitOps a diversos clusters habilitados para Azure Arc.

Diagram showing the process of applying GitOps-based configuration to multiple Azure Arc-enabled clusters.

O GitOps está habilitado em um cluster do Kubernetes como um recurso de extensão de cluster Microsoft.KubernetesConfiguration/extensions/microsoft.flux. Para criar fluxConfigurations, a extensão microsoft.flux deve ser instalada no cluster. A extensão é instalada automaticamente quando você cria a primeira instância do Microsoft.KubernetesConfiguration/fluxConfigurations em um cluster. Também é possível instalar a extensão manualmente antes de criar suas configurações.

Cada associação entre uma configuração de cluster do Kubernetes habilitado para Azure Arc e o repositório GitOps correspondente reside no Azure como parte do recurso do Azure do cluster do Kubernetes habilitado para Azure Arc. É possível configurar a associação usando as interfaces de gerenciamento do Azure, como o portal do Azure ou a CLI do Azure.

Siga as etapas resumidas a seguir para implementar GitOps com um cluster do Kubernetes habilitado para Azure Arc.

  1. Use a extensão k8s-configuration da CLI do Azure para aplicar uma configuração do Flux e habilitar o GitOps no cluster do Kubernetes habilitado para Arc.
  2. Valide a configuração para confirmar a criação bem-sucedida. O recurso de configuração é atualizado com status de conformidade, mensagens e informações de depuração.

Depois de aplicar a configuração, é possível usar o portal do Azure para exibir os detalhes de conformidade. Você também pode usar o portal do Azure para criar, atualizar e excluir configurações do GitOps.

Usar o Azure Policy para automatizar a configuração

Você pode usar o Azure Policy para automatizar o processo de configuração, a fim de aplicá-lo de maneira consistente em escala. Antes de atribuir uma política para configurar os clusters, você deve verificar se a extensão do Flux foi criada nos clusters. Você pode fazer isso primeiro atribuindo a definição de política Configurar a instalação da extensão do Flux no cluster do Kubernetes, que garante que a extensão esteja instalada.

A criação da atribuição do Azure Policy no portal do Azure consiste nas seguintes etapas de alto nível:

  1. No portal do Azure, exiba todas as definições de política pesquisando e selecionando Política e, em seguida, clique em Definições no menu à esquerda da página Política.
  2. Pesquise Configurar clusters d Kubernetes com uma configuração de GitOps especificada e selecione uma das definições de política internas.
  3. Selecione Atribuir e crie uma atribuição de política especificando as configurações de escopo, parâmetros e correção.
  4. Selecione Examinar + Criar e, em seguida, selecione Criar.

A atribuição de política habilita automaticamente o GitOps em cada cluster do Kubernetes habilitado para Azure Arc criado dentro do escopo da atribuição. Para os clusters existentes, você precisará executar a tarefa de correção manualmente.

Você aprenderá mais sobre o Azure Policy na próxima unidade.