GitOps Flux v1-konfigurationer med Azure Arc-aktiverade Kubernetes

Viktigt!

Dokumenten i det här avsnittet är för GitOps med Flux v1. GitOps med Flux v2 är nu tillgängligt för Azure Arc-aktiverade Kubernetes- och Azure Kubernetes Service-kluster (AKS). lär dig mer om GitOps med Flux v2. Vi rekommenderar att du migrerar till Flux v2 så snart som möjligt.

Stöd för Flux v1-baserade klusterkonfigurationsresurser som skapats före den 1 januari 2024 upphör den 24 maj 2025. Från och med den 1 januari 2024 kan du inte skapa nya Flux v1-baserade klusterkonfigurationsresurser.

När det gäller Kubernetes är GitOps praxis att deklarera önskat tillstånd för Kubernetes-klusterkonfigurationer (distributioner, namnområden osv.) på en Git-lagringsplats. Den här deklarationen följs av en avsöknings- och pull-baserad distribution av dessa klusterkonfigurationer med hjälp av en operator. Git-lagringsplatsen kan innehålla:

  • YAML-formatmanifest som beskriver alla giltiga Kubernetes-resurser, inklusive namnområden, konfiguration Kartor, distributioner, daemonuppsättningar osv.
  • Helm-diagram för att distribuera program.

Flux, ett populärt verktyg med öppen källkod i GitOps-utrymmet, kan distribueras i Kubernetes-klustret för att underlätta flödet av konfigurationer från en Git-lagringsplats till ett Kubernetes-kluster. Flux stöder distributionen av operatorn i både kluster- och namnområdesomfången. En flödesoperator som distribueras med namnområdesomfång kan bara distribuera Kubernetes-objekt inom det specifika namnområdet. Möjligheten att välja mellan kluster- eller namnområdesomfång hjälper dig att uppnå distributionsmönster för flera klientorganisationer i samma Kubernetes-kluster.

Konfigurationer

Configurations architecture

Anslutningen mellan klustret och en Git-lagringsplats skapas som en konfigurationsresurs (Microsoft.KubernetesConfiguration/sourceControlConfigurations) ovanpå den Azure Arc-aktiverade Kubernetes-resursen (representeras av Microsoft.Kubernetes/connectedClusters) i Azure Resource Manager.

Egenskaperna för konfigurationsresursen används för att distribuera Flux-operatorn i klustret med lämpliga parametrar, till exempel Git-lagringsplatsen som manifesten ska hämtas från och det avsökningsintervall som de ska hämtas från. Konfigurationsresursdata lagras krypterade i vila i en Azure Cosmos DB-databas för att säkerställa datasekretess.

Körningen config-agent i klustret ansvarar för:

  • Spåra nya eller uppdaterade konfigurationsresurser på Den Azure Arc-aktiverade Kubernetes-resursen.
  • Distribuera en Flux-operator för att titta på Git-lagringsplatsen för varje konfigurationsresurs.
  • Tillämpa alla uppdateringar som görs på alla konfigurationsresurser.

Du kan skapa flera konfigurationsresurser med namnområdesomfång på samma Azure Arc-aktiverade Kubernetes-kluster för att uppnå flera innehavare.

Kommentar

  • config-agent övervakar för att nya eller uppdaterade konfigurationsresurser ska vara tillgängliga på den Azure Arc-aktiverade Kubernetes-resursen. Agenter kräver därför anslutning för att önskat tillstånd ska hämtas till klustret. Om agenter inte kan ansluta till Azure finns det en fördröjning i spridningen av önskat tillstånd till klustret.
  • Känsliga kundindata som privat nyckel, känt värdinnehåll, HTTPS-användarnamn och token/lösenord lagras inte på mer än 48 timmar i Azure Arc-aktiverade Kubernetes-tjänster. Om du använder känsliga indata för konfigurationer kan du aktivera klustren så regelbundet som möjligt.

Tillämpa konfigurationer i stor skala

Eftersom Azure Resource Manager hanterar dina konfigurationer kan du automatisera skapandet av samma konfiguration för alla Azure Arc-aktiverade Kubernetes-resurser med hjälp av Azure Policy, inom omfånget för en prenumeration eller en resursgrupp.

Den här skalningsåtgärden säkerställer att en gemensam baslinjekonfiguration (som innehåller konfigurationer som ClusterRoleBindings, RoleBindings och NetworkPolicy) kan tillämpas i en hel flotta eller inventering av Azure Arc-aktiverade Kubernetes-kluster.

Nästa steg