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

Importante

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

O suporte para os recursos de configuração de cluster baseados em 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, o GitOps é a prática de declarar o estado desejado de configurações do cluster do Kubernetes (implantações, namespaces etc.) em um repositório Git. Essa declaração é seguida por uma implantação baseada em sondagem e em pull dessas configurações de cluster que usam um operador. O repositório Git pode conter:

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

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

Configurações

Configurations architecture

A conexão entre o cluster e um repositório Git é criada como um recurso de configuração (Microsoft.KubernetesConfiguration/sourceControlConfigurations) na parte superior do recurso Kubernetes habilitado para Azure Arc (representado por Microsoft.Kubernetes/connectedClusters) no Azure Resource Manager.

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

O config-agent em execução no seu cluster é responsável por:

  • Acompanhar recursos de configuração novos ou atualizados no recurso do Kubernetes habilitado para Azure Arc.
  • Implantar um operador do Flux para assistir ao repositório Git para cada recurso de configuração.
  • Aplicar todas as atualizações feitas a qualquer recurso de configuração.

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

Observação

  • O config-agent monitora os recursos de configuração novos ou atualizados a serem disponibilizados no recurso do Kubernetes habilitado para Azure Arc. Portanto, os agentes exigem conectividade para que seja efetuado pull do estado desejado para o cluster. Se os agentes não puderem 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 do Kubernetes habilitado para Azure Arc. Se você estiver usando entradas confidenciais para configurações, disponibilize os clusters online o mais regularmente possível.

Aplicar configurações em escala

Como o Azure Resource Manager gerencia as suas configurações, você pode automatizar a criação da mesma configuração em todos os recursos do Kubernetes habilitado para Azure Arc usando o Azure Policy, 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 do Kubernetes habilitado para Azure Arc.

Próximas etapas