GitOps Flux v1-configuraties met Kubernetes met Azure Arc

Belangrijk

De documenten in deze sectie zijn bedoeld voor GitOps met Flux v1. GitOps met Flux v2 is nu beschikbaar voor Azure Arc-clusters met Kubernetes en Azure Kubernetes Service (AKS). meer informatie over GitOps met Flux v2. U wordt aangeraden zo snel mogelijk naar Flux v2 te migreren.

Ondersteuning voor op Flux v1 gebaseerde clusterconfiguratiebronnen die vóór 1 januari 2024 zijn gemaakt, eindigt op 24 mei 2025. Vanaf 1 januari 2024 kunt u geen nieuwe op Flux v1 gebaseerde clusterconfiguratiebronnen maken.

In relatie tot Kubernetes is GitOps de praktijk van het declareren van de gewenste status van Kubernetes-clusterconfiguraties (implementaties, naamruimten, enzovoort) in een Git-opslagplaats. Deze declaratie wordt gevolgd door een polling- en pull-implementatie van deze clusterconfiguraties met behulp van een operator. De Git-opslagplaats kan het volgende bevatten:

  • YAML-indelingsmanifesten die geldige Kubernetes-resources beschrijven, waaronder naamruimten, configuratie Kaarten, implementaties, DaemonSets, enzovoort.
  • Helm-grafieken voor het implementeren van toepassingen.

Flux, een populair opensource-hulpprogramma in de GitOps-ruimte, kan worden geïmplementeerd op het Kubernetes-cluster om de stroom van configuraties van een Git-opslagplaats naar een Kubernetes-cluster te vereenvoudigen. Flux ondersteunt de implementatie van de operator in zowel het cluster als de naamruimtebereiken. Een flux-operator die is geïmplementeerd met naamruimtebereik, kan alleen Kubernetes-objecten binnen die specifieke naamruimte implementeren. De mogelijkheid om te kiezen tussen cluster- of naamruimtebereik, helpt u bij het bereiken van implementatiepatronen met meerdere tenants op hetzelfde Kubernetes-cluster.

Configuraties

Configurations architecture

De verbinding tussen uw cluster en een Git-opslagplaats wordt gemaakt als een configuratieresource (Microsoft.KubernetesConfiguration/sourceControlConfigurations) boven op de Kubernetes-resource met Azure Arc (vertegenwoordigd door Microsoft.Kubernetes/connectedClusters) in Azure Resource Manager.

De eigenschappen van de configuratieresource worden gebruikt voor het implementeren van flux-operator op het cluster met de juiste parameters, zoals de Git-opslagplaats waaruit manifesten en het polling-interval moeten worden opgehaald. De configuratieresourcegegevens worden in rust opgeslagen in een Azure Cosmos DB-database om de vertrouwelijkheid van gegevens te waarborgen.

De config-agent uitvoering in uw cluster is verantwoordelijk voor:

  • Nieuwe of bijgewerkte configuratieresources bijhouden in de Kubernetes-resource met Azure Arc.
  • Een Flux-operator implementeren om de Git-opslagplaats voor elke configuratieresource te bekijken.
  • Alle updates toepassen die zijn aangebracht op een configuratieresource.

U kunt meerdere configuratiebronnen met naamruimtebereik maken op hetzelfde Kubernetes-cluster met Azure Arc om multitenancy te bereiken.

Notitie

  • config-agent controleert of er nieuwe of bijgewerkte configuratieresources beschikbaar zijn in de Kubernetes-resource met Azure Arc. Agents vereisen dus connectiviteit voor de gewenste status die naar het cluster moet worden opgehaald. Als agents geen verbinding kunnen maken met Azure, is er een vertraging bij het doorgeven van de gewenste status aan het cluster.
  • Gevoelige klantinvoer, zoals persoonlijke sleutel, inhoud van bekende hosts, HTTPS-gebruikersnaam en token/wachtwoord, worden gedurende meer dan 48 uur niet opgeslagen in de Kubernetes-services met Azure Arc. Als u gevoelige invoer voor configuraties gebruikt, brengt u de clusters zo regelmatig mogelijk online.

Configuraties op schaal toepassen

Omdat Azure Resource Manager uw configuraties beheert, kunt u het maken van dezelfde configuratie automatiseren voor alle Kubernetes-resources met Azure Arc met behulp van Azure Policy, binnen het bereik van een abonnement of een resourcegroep.

Deze afdwinging op schaal zorgt ervoor dat een algemene basislijnconfiguratie (met configuraties zoals ClusterRoleBindings, RoleBindings en NetworkPolicy) kan worden toegepast op een hele vloot of inventaris van Kubernetes-clusters met Azure Arc.

Volgende stappen