Configurações do GitOps Flux v1 com Kubernetes habilitado para Azure Arc

Importante

Os documentos nesta seção são para GitOps com Flux v1. O GitOps com Flux v2 agora está disponível para clusters Kubernetes habilitados para Azure Arc e Serviço Kubernetes do Azure (AKS); saiba mais sobre o GitOps com o Flux v2. Recomendamos migrar para o Flux v2 o mais rápido possível.

O suporte para recursos de configuração de cluster baseados no Flux v1 criados antes de 1º de janeiro de 2024 terminará em 24 de maio de 2025. A partir de 1º de janeiro de 2024, você não poderá criar novos recursos de configuração de cluster baseados no Flux v1.

Em relação ao Kubernetes, GitOps é a prática de declarar o estado desejado das configurações de cluster do Kubernetes (implantações, namespaces, etc.) em um repositório Git. Essa declaração é seguida por uma implantação baseada em sondagem e pull dessas configurações de cluster usando um operador. O repositório Git pode conter:

  • Manifestos no formato YAML descrevendo quaisquer recursos válidos do Kubernetes, incluindo Namespaces, ConfigMaps, Deployments, DaemonSets, etc.
  • Gráficos de leme para implantação de aplicativos.

O Flux, uma ferramenta de código aberto popular no espaço GitOps, pode ser implantado no cluster Kubernetes para facilitar o fluxo de configurações de um repositório Git para um cluster Kubernetes. O Flux suporta a implantação de seu operador nos escopos de cluster e namespace. Um operador de fluxo implantado com escopo de namespace só pode implantar objetos Kubernetes dentro desse namespace específico. A capacidade de escolher entre o escopo do cluster ou do namespace ajuda você a alcançar padrões de implantação multilocatário no mesmo cluster do Kubernetes.

Configurações

Configurations architecture

A conexão entre seu cluster e um repositório Git é criada como um recurso de configuração () sobre o recurso Kubernetes habilitado para Azure Arc (Microsoft.KubernetesConfiguration/sourceControlConfigurationsrepresentado por Microsoft.Kubernetes/connectedClusters) no Azure Resource Manager.

As propriedades do recurso de configuração são usadas para implantar o operador Flux no cluster com os parâmetros apropriados, como o repositório Git do qual extrair manifestos e o intervalo de sondagem no qual extraí-los. Os dados do recurso de configuração são armazenados criptografados em repouso em um banco de dados do Azure Cosmos DB para garantir a confidencialidade dos dados.

A config-agent execução no cluster é responsável por:

  • Controlar recursos de configuração novos ou atualizados no recurso Kubernetes habilitado para Azure Arc.
  • Implantação de um operador Flux para observar o repositório Git para cada recurso de configuração.
  • Aplicação de quaisquer atualizações feitas a qualquer recurso de configuração.

Você pode criar vários recursos de configuração com escopo de namespace no mesmo cluster Kubernetes habilitado para Azure Arc para obter multilocação.

Nota

  • config-agent monitora recursos de configuração novos ou atualizados a serem disponibilizados no recurso Kubernetes habilitado para Arco do Azure. Assim, os agentes exigem conectividade para que o estado desejado seja puxado para baixo para o cluster. Se os agentes não conseguirem se conectar ao Azure, haverá um atraso na propagação do estado desejado para o cluster.
  • Entradas confidenciais do cliente, como chave privada, conteúdo de hosts conhecidos, nome de usuário HTTPS e token/senha, não são armazenadas por mais de 48 horas nos serviços Kubernetes habilitados para Azure Arc. Se você estiver usando entradas confidenciais para configurações, coloque os clusters online o mais regularmente possível.

Aplicar configurações em escala

Como o Azure Resource Manager gerencia suas configurações, você pode automatizar a criação da mesma configuração em todos os recursos do Kubernetes habilitados para Azure Arc usando a Política do Azure, dentro do escopo de uma assinatura ou de um grupo de recursos.

Essa imposição em escala garante que uma configuração de linha de base comum (contendo configurações como ClusterRoleBindings, RoleBindings e NetworkPolicy) possa ser aplicada em toda uma frota ou inventário de clusters Kubernetes habilitados para Azure Arc.

Próximos passos