Distribuera program konsekvent i stor skala med flux v2-konfigurationer och Azure Policy

Du kan använda Azure Policy för att tillämpa Flux v2-konfigurationer (Microsoft.KubernetesConfiguration/fluxConfigurations resurstyp) i stor skala på Azure Arc-aktiverade Kubernetes-kluster (Microsoft.Kubernetes/connectedClusters) eller AKS-kluster (Microsoft.ContainerService/managedClusters). Om du vill använda Azure Policy väljer du en inbyggd principdefinition och skapar en principtilldelning.

Innan du tilldelar principen som skapar Flux-konfigurationer måste du se till att Flux-tillägget distribueras till dina kluster. Du kan göra detta genom att först tilldela en princip som distribuerar tillägget till alla kluster i det valda omfånget (alla resursgrupper i en prenumeration eller hanteringsgrupp eller till specifika resursgrupper). När du sedan skapar principtilldelningen för att distribuera konfigurationer anger du parametrar för Flux-konfigurationen som ska tillämpas på klustren i det omfånget.

För att möjliggöra separation av problem kan du skapa flera principtilldelningar, var och en med en annan Flux v2-konfiguration som pekar på en annan källa. Till exempel kan en Git-lagringsplats användas av klusteradministratörer medan andra lagringsplatser kan användas av programteam.

Inbyggda policydefinitioner

Följande inbyggda principdefinitioner ger stöd för dessa scenarier:

beskrivning Policy
Installation av Flux-tillägg (krävs för alla scenarier) Configure installation of Flux extension on Kubernetes cluster
Fluxkonfiguration med offentlig Git-lagringsplats (vanligtvis ett testscenario) Configure Kubernetes clusters with Flux v2 configuration using public Git repository
Flux-konfiguration med privat Git-lagringsplats med SSH-autentisering Configure Kubernetes clusters with Flux v2 configuration using Git repository and SSH secrets
Flux-konfiguration med privat Git-lagringsplats med HTTPS-autentisering Configure Kubernetes clusters with Flux v2 configuration using Git repository and HTTPS secrets
Flux-konfiguration med privat Git-lagringsplats med HTTPS CA-certifikatautentisering Configure Kubernetes clusters with Flux v2 configuration using Git repository and HTTPS CA Certificate
Fluxkonfiguration med privat Git-lagringsplats med lokal K8s-hemlighet Configure Kubernetes clusters with Flux v2 configuration using Git repository and local secrets
Flux-konfiguration med hjälp av privata Bucket-källa- och KeyVault-hemligheter Configure Kubernetes clusters with Flux v2 configuration using Bucket source and secrets in KeyVault
Fluxkonfiguration med privat Bucket-källa och lokal K8s-hemlighet Configure Kubernetes clusters with specified Flux v2 Bucket source using local secrets

Om du vill hitta alla Flux v2-principdefinitioner söker du efter flöde. Mer information finns i Inbyggda Azure-principdefinitioner för Azure Arc-aktiverade Kubernetes.

Förutsättningar

  • Ett eller flera Arc-aktiverade Kubernetes-kluster och/eller AKS-kluster.
  • Microsoft.Authorization/policyAssignments/write behörigheter för omfånget (prenumeration eller resursgrupp) där du skapar principtilldelningarna.

Skapa en principtilldelning för att installera Flux-tillägget

För att en princip ska kunna tillämpa Flux v2-konfigurationer på ett kluster måste Flux-tillägget först installeras på klustret. För att säkerställa att tillägget är installerat i vart och ett av dina kluster tilldelar du definitionen Konfigurera installation av Flux-tillägget på Kubernetes-klusterprincipen till önskat omfång.

  1. I Azure-portalen går du till Princip.
  2. I avsnittet Redigering i sidofältet väljer du Definitioner.
  3. I kategorin "Kubernetes" väljer du den inbyggda principdefinitionen Konfigurera installation av Flux-tillägget i Kubernetes-klustret .
  4. Välj Tilldela.
  5. Ange omfånget till den hanteringsgrupp, prenumeration eller resursgrupp som principtilldelningen ska gälla för.
    • Om du vill exkludera resurser från principtilldelningsomfånget anger du Undantag.
  6. Ge principtilldelningen ett lätt identifierbart tilldelningsnamn och en beskrivning.
  7. Se till att Principtillämpning är inställt på Aktiverad.
  8. Välj Granska + skapa och välj sedan Skapa.

Skapa en principtilldelning för att tillämpa Flux-konfigurationer

Gå sedan tillbaka till listan Definitioner (i avsnittet Redigering av princip) för att tillämpa konfigurationsprincipdefinitionen på samma omfång.

  1. I kategorin "Kubernetes" väljer du konfigurationen Konfigurera Kubernetes-kluster med Flux v2 med inbyggd principdefinition för offentliga Git-lagringsplatser eller någon av de andra principdefinitionerna för att tillämpa Flux-konfigurationer.

  2. Välj Tilldela.

  3. Ange omfånget till samma omfång som du valde när du tilldelar den första principen, inklusive eventuella undantag.

  4. Ge principtilldelningen ett lätt identifierbart tilldelningsnamn och en beskrivning.

  5. Se till att Principtillämpning är inställt på Aktiverad.

  6. Välj Nästa och välj sedan Nästa igen för att öppna fliken Parametrar .

  7. Ange vilka parametervärden som ska användas.

    • Mer information om parametrar finns i självstudien om hur du distribuerar Flux v2-konfigurationer.
    • När du skapar Flux-konfigurationer måste du ange ett värde för en (och endast en) av dessa parametrar: repositoryRefBranch, repositoryRefTag, repositoryRefSemver, repositoryRefCommit.
  8. Välj Nästa för att öppna reparationsaktiviteten.

  9. Aktivera Skapa en reparationsaktivitet.

  10. Kontrollera att Skapa en hanterad identitet är markerat och att identiteten har deltagarbehörighet . Mer information finns i Snabbstart: Skapa en principtilldelning för att identifiera icke-kompatibla resurser och Åtgärda icke-kompatibla resurser med Azure Policy.

  11. Välj Granska + skapa och välj sedan Skapa.

Konfigurationen tillämpas sedan på nya Azure Arc-aktiverade Kubernetes- eller AKS-kluster som skapats inom omfånget för principtilldelning.

För befintliga kluster kan du behöva köra en reparationsuppgift manuellt. Den här uppgiften tar vanligtvis 10 till 20 minuter innan principtilldelningen börjar gälla.

Verifiera principtilldelningen

  1. I Azure-portalen går du till ett av dina Azure Arc-aktiverade Kubernetes- eller AKS-kluster.

  2. I avsnittet Inställningar i sidofältet väljer du GitOps.

    I konfigurationslistan bör du se konfigurationen som skapats av principtilldelningen.

  3. I avsnittet Kubernetes-resurser i sidofältet väljer du Namnområden och arbetsbelastningar.

    Du bör se namnrymden och artefakterna som skapades av Flux-konfigurationen. Du bör också se de objekt som beskrivs av manifesten i Git-lagringsplatsen som distribueras i klustret.

Anpassa en princip

De inbyggda principerna beskriver de viktigaste scenarierna för att använda GitOps med Flux v2 i dina Kubernetes-kluster. Men på grund av begränsningar för antalet parametrar som tillåts i Azure Policy-tilldelningar (högst 20) finns inte alla parametrar i de inbyggda principerna. För att passa inom gränsen på 20 parametrar kan endast en enda kustomisering skapas med de inbyggda principerna.

Om du har ett scenario som skiljer sig från de inbyggda principerna kan du övervinna begränsningarna genom att skapa anpassade principer med hjälp av de inbyggda principerna som mallar. Du kan skapa anpassade principer som bara innehåller de parametrar du behöver och hårdkoda resten och därför arbeta runt gränsen på 20 parametrar.

Nästa steg