Implantar aplicativos consistentemente em escala usando configurações do Flux v2 e o Azure Policy

Você pode usar o Azure Policy para aplicar configurações do Flux v2 (tipo de recurso Microsoft.KubernetesConfiguration/fluxConfigurations) em escala nos clusters do Kubernetes habilitados para Azure Arc (Microsoft.Kubernetes/connectedClusters) ou nos clusters do AKS (Microsoft.ContainerService/managedClusters). Para usar o Azure Policy, selecione uma definição de política interna e crie uma atribuição de política.

Antes de atribuir a política que cria configurações do Flux, você deve certificar-se de que a extensão do Flux seja implantada em seus clusters. Você pode fazer isso atribuindo primeiro uma política que implanta a extensão a todos os clusters no escopo selecionado (todos os grupos de recursos em um grupo de gerenciamento ou assinatura ou para grupos de recursos específicos). Em seguida, ao criar a atribuição de política para implantar configurações, defina parâmetros para a configuração do Flux que será aplicada aos clusters nesse escopo.

Para habilitar a separação de preocupações, você pode criar várias atribuições de política, cada uma com uma configuração diferente do Flux v2 apontando a uma fonte diferente. Por exemplo, um repositório Git pode ser usado por administradores de clusters, enquanto outros repositórios podem ser usados pelas equipes de aplicativos.

Definições de políticas internas

As definições de políticas internas dão suporte a esses cenários:

Descrição Política
Instalação da extensão do Flux (necessária para todos os cenários) Configure installation of Flux extension on Kubernetes cluster
Configuração do Flux usando o repositório Git público (geralmente um cenário de teste) Configure Kubernetes clusters with Flux v2 configuration using public Git repository
Configuração do Flux usando o repositório Git privado com autenticação SSH Configure Kubernetes clusters with Flux v2 configuration using Git repository and SSH secrets
Configuração do Flux usando o repositório Git privado com autenticação HTTPS Configure Kubernetes clusters with Flux v2 configuration using Git repository and HTTPS secrets
Configuração do Flux usando o repositório Git privado com autenticação de certificado de autoridade de certificação HTTPS Configure Kubernetes clusters with Flux v2 configuration using Git repository and HTTPS CA Certificate
Configuração do Flux usando o repositório Git privado com segredo K8s local Configure Kubernetes clusters with Flux v2 configuration using Git repository and local secrets
Configuração do Flux usando a origem Bucket privado e os segredos do KeyVault Configure Kubernetes clusters with Flux v2 configuration using Bucket source and secrets in KeyVault
Configuração do Flux usando a origem Bucket privado e segredo K8s local Configure Kubernetes clusters with specified Flux v2 Bucket source using local secrets

Para localizar todas as definições de política do Flux v2, pesquise flux. Para obter mais informações, confira Definições internas do Azure Policy para Kubernetes habilitado para Azure Arc.

Pré-requisitos

  • Um ou mais clusters do Kubernetes habilitados para Arc e/ou clusters do AKS.
  • Microsoft.Authorization/policyAssignments/write permissões no escopo (assinatura ou grupo de recursos) em que deseja criar essa atribuição de política.

Criar uma atribuição de política para instalar a extensão do Flux

Para que uma política aplique configurações do Flux v2 a um cluster, a extensão do Flux primeiro deve ser instalada no cluster. Para garantir que a extensão seja instalada em cada um dos clusters, atribua a definição de política Configurar a instalação da extensão do Flux no cluster do Kubernetes ao escopo desejado.

  1. No portal do Azure, vá para Política.
  2. Na seção Criação da barra lateral, escolha Definições.
  3. Na categoria “Kubernetes”, selecione a definição de política interna Configurar a instalação da extensão do Flux no cluster do Kubernetes.
  4. Selecione Atribuir.
  5. Defina o Escopo do grupo de gerenciamento, a assinatura ou o grupo de recursos ao qual a atribuição de política será aplicada.
    • Se você quiser excluir algum recurso do escopo da atribuição da política, defina as Exclusões.
  6. Dê à atribuição de política um Nome de atribuição e uma Descrição facilmente identificáveis.
  7. Verifique se Imposição de política está definida como Habilitado.
  8. Selecione Examinar + criare Criar.

Crie uma atribuição de política para aplicar configurações do Flux

Em seguida, retorne à lista Definições (na seção Criação do Policy) para aplicar a definição da política de configuração ao mesmo escopo.

  1. Na categoria “Kubernetes”, selecione a definição de política interna Configurar clusters do Kubernetes com a configuração do Flux v2 usando o repositório Git público ou uma das outras definições de política para aplicar configurações do Flux.

  2. Selecione Atribuir.

  3. Defina o Escopo para o mesmo escopo selecionado ao atribuir a primeira política, incluindo exclusões.

  4. Dê à atribuição de política um Nome de atribuição e uma Descrição facilmente identificáveis.

  5. Verifique se Imposição de política está definida como Habilitado.

  6. Selecione Avançar e selecione Avançar novamente para abrir a guia Parâmetros.

  7. Defina os valores de parâmetro a serem usados.

    • Para obter mais informações sobre parâmetros, confira o tutorial de como implantar configurações do Flux v2.
    • Ao criar configurações do Flux, você deve fornecer um valor para um (e apenas um) desses parâmetros : repositoryRefBranch, repositoryRefTag, repositoryRefSemver, repositoryRefCommit.
  8. Selecione Avançar para abrir a tarefa de Correção.

  9. Habilitar Criar uma tarefa de correção.

  10. Verifique se Criar uma identidade gerenciada está marcada e se a identidade tem permissões de Colaborador. Para obter mais informações, confira Início Rápido: criar uma atribuição de política para identificar recursos fora de conformidade e Corrigir recursos fora de conformidade com o Azure Policy.

  11. Selecione Examinar + criare Criar.

Em seguida, a configuração é aplicada ao Kubernetes habilitado para Azure Arc ou clusters do AKS, criados dentro do escopo da atribuição de política.

Para clusters existentes, talvez seja necessário executar manualmente uma tarefa de correção. Essa tarefa normalmente leva de 10 a 20 minutos para que a atribuição de política entre em vigor.

Verificar a atribuição de política

  1. No portal do Azure, navegue até um dos clusters do Kubernetes habilitados para Azure Arc ou do AKS.

  2. Na seção Configurações da barra lateral, selecione GitOps.

    Na lista de configurações, você deve ver a configuração criada pela atribuição de política.

  3. Na seção Recursos do Kubernetes da barra lateral, selecione Namespaces e Cargas de trabalho.

    Você verá o namespace e os artefatos que foram criados pela configuração do Flux. Você também verá os objetos descritos pelos manifestos no repositório Git implantado no cluster.

Personalizar uma política

As políticas internas abrangem os principais cenários para usar o GitOps com o Flux v2 em seus clusters do Kubernetes. No entanto, devido a limitações no número de parâmetros permitidos em atribuições de Azure Policy (máximo de 20), nem todos os parâmetros estão presentes nas políticas internas. Além disso, para se ajustar ao limite de 20 parâmetros, apenas uma única kustomização pode ser criado com as políticas internas.

Se você tiver um cenário diferente das políticas internas, poderá superar as limitações criando políticas personalizadas usando as políticas internas como modelos. Você pode criar políticas personalizadas que contêm apenas os parâmetros necessários e codificar o restante, portanto, trabalhando em torno do limite de 20 parâmetros.

Próximas etapas