Konsistentes Bereitstellen von Anwendungen im großen Stil mithilfe von Flux v2-Konfigurationen und Azure Policy

Sie können Azure Policy verwenden, um Flux v2-Konfigurationen (Ressourcentyp Microsoft.KubernetesConfiguration/fluxConfigurations) im großen Stil auf Kubernetes-Cluster mit Azure Arc-Unterstützung (Microsoft.Kubernetes/connectedClusters) oder auf AKS-Cluster (Microsoft.ContainerService/managedClusters) anzuwenden. Um Azure Policy zu verwenden, wählen Sie eine integrierte Richtliniendefinition aus, und erstellen Sie eine Richtlinienzuweisung.

Bevor Sie die Richtlinie zuweisen, die Flux-Konfigurationen erstellt, müssen Sie sicherstellen, dass die Flux-Erweiterung in Ihren Clustern bereitgestellt wird. Dazu können Sie zuerst eine Richtlinie zuweisen, welche die Erweiterung allen Clustern im ausgewählten Bereich (alle Ressourcengruppen in einem Abonnement oder einer Verwaltungsgruppe oder bestimmten Ressourcengruppen) bereitstellt. Wenn Sie dann die Richtlinienzuweisung für die Bereitstellung von Konfigurationen erstellen, legen Sie Parameter für die Flux-Konfiguration fest, die auf die Cluster in diesem Bereich angewendet wird.

Um die Trennung von Belangen zu ermöglichen, können Sie mehrere Richtlinienzuweisungen erstellen, die jeweils über eine andere Flux v2-Konfiguration verfügen, die auf eine andere Quelle verweist. Beispielsweise kann ein Git-Repository von Clusteradministratoren, hingegen andere Repositorys von Anwendungsteams verwendet werden.

Integrierte Richtliniendefinitionen

Die folgenden integrierten Richtliniendefinitionen unterstützen diese Szenarien:

Beschreibung Policy
Flux-Erweiterungsinstallation (erforderlich für alle Szenarien) Configure installation of Flux extension on Kubernetes cluster
Flux-Konfiguration mittels öffentlichem Git-Repository (im Allgemeinen ein Testszenario) Configure Kubernetes clusters with Flux v2 configuration using public Git repository
Flux-Konfiguration mittels privatem Git-Repository mit SSH-Authentifizierung Configure Kubernetes clusters with Flux v2 configuration using Git repository and SSH secrets
Flux-Konfiguration mittels privatem Git-Repository mit HTTPS-Authentifizierung Configure Kubernetes clusters with Flux v2 configuration using Git repository and HTTPS secrets
Flux-Konfiguration mittels privatem Git-Repository mit HTTPS-Authentifizierung mit Zertifikat einer Zertifizierungsstelle Configure Kubernetes clusters with Flux v2 configuration using Git repository and HTTPS CA Certificate
Flux-Konfiguration mittels privatem Git-Repository mit lokalem K8s-Geheimnis Configure Kubernetes clusters with Flux v2 configuration using Git repository and local secrets
Flux-Konfiguration mittels privater Bucket-Quelle und KeyVault-Schlüsseln Configure Kubernetes clusters with Flux v2 configuration using Bucket source and secrets in KeyVault
Flux-Konfiguration mittels privater Bucket-Quelle und lokalem K8s-Geheimnis Configure Kubernetes clusters with specified Flux v2 Bucket source using local secrets

Sie können nach Flux suchen, um alle Richtliniendefinitionen von Flux v2 zu finden. Weitere Informationen finden Sie unter Integrierte Azure-Richtliniendefinitionen für Azure Arc-fähiges Kubernetes.

Voraussetzungen

  • Ein oder mehrere Arc-fähige Kubernetes-Cluster und/oder AKS-Cluster.
  • Microsoft.Authorization/policyAssignments/write-Berechtigungen für den Bereich (Abonnement oder Ressourcengruppe), in dem Sie die Richtlinienzuweisung erstellen möchten.

Erstellen einer Richtlinienzuweisung zur Installation der Flux-Erweiterung

Damit eine Richtlinie Flux v2-Konfigurationen auf ein Cluster anwenden kann, muss die Flux-Erweiterung zuerst auf dem Cluster installiert werden. Um sicherzustellen, dass die Erweiterung auf jedem Ihrer Cluster installiert ist, weisen Sie die Configure-Installation der Flux-Erweiterung auf Kubernetes Clusterrichtliniendefinition dem gewünschten Bereich zu.

  1. Navigieren Sie im Azure-Portal zu Policy.
  2. Wählen Sie im Abschnitt Erstellung auf der Randleiste die Option Definitionen aus.
  3. Wählen Sie in der Kategorie „Kubernetes“ die integrierte Richtliniendefinition Konfigurieren der Installation der Flux-Erweiterung im Kubernetes-Cluster aus.
  4. Wählen Sie Zuweisen aus.
  5. Legen Sie den Bereich auf die Verwaltungsgruppe, das Abonnement oder die Ressourcengruppe fest, in der oder dem die Richtlinienzuweisung angewandt wird.
    • Wenn Sie irgendwelche Ressourcen aus dem Zuweisungsbereich der Richtlinie ausschließen möchten, setzen Sie Ausschlüsse.
  6. Legen Sie für die Richtlinienzuweisung einen einfach erkennbaren Zuordnungsnamen und eine Beschreibung fest.
  7. Stellen Sie sicher, dass Richtlinienerzwingung auf Aktiviert festgelegt ist.
  8. Klicken Sie aufÜberprüfen + erstellen und dann auf Erstellen.

Erstellen einer Richtlinienzuweisung zum Anwenden von Flux-Konfigurationen

Kehren Sie als Nächstes zur Definitionsliste (im Abschnitt Dokumenterstellung der Richtlinie) zurück, um die Konfigurationsrichtliniendefinition auf denselben Bereich anzuwenden.

  1. Wählen Sie in der Kategorie „Kubernetes“ die integrierte Richtliniendefinition Kubernetes Cluster mit Flux v2-Konfiguration mithilfe von öffentlichen Git-Repositorys konfigurieren oder eine der anderen Richtliniendefinitionen aus, um Flux-Konfigurationen anzuwenden.

  2. Wählen Sie Zuweisen aus.

  3. Legen Sie den Bereich auf denselben Bereich fest, den Sie beim Zuweisen der ersten Richtlinie ausgewählt haben, einschließlich aller Ausschlüsse.

  4. Legen Sie für die Richtlinienzuweisung einen einfach erkennbaren Zuordnungsnamen und eine Beschreibung fest.

  5. Stellen Sie sicher, dass Richtlinienerzwingung auf Aktiviert festgelegt ist.

  6. Wählen Sie Weiter aus, und wählen Sie dann erneut Weiter aus, um die Registerkarte Parameter zu öffnen.

  7. Legen Sie die zu verwendenden Parameterwerte fest.

    • Weitere Informationen zu Parametern finden Sie im Tutorial zum Bereitstellen von Flux v2-Konfigurationen.
    • Wenn Sie Flux-Konfigurationen erstellen, müssen Sie einen Wert für einen (und nur einen) dieser Parameter angeben: repositoryRefBranch, repositoryRefTag, repositoryRefSemver, repositoryRefCommit.
  8. Wählen Sie Weiter aus, um die Wartungsaufgabe zu öffnen.

  9. Aktivieren Sie Korrekturtask erstellen.

  10. Stellen Sie sicher, dass Verwaltete Identität erstellen aktiviert ist und dass die Identität Mitwirkender-Berechtigungen besitzt. Weitere Informationen finden Sie in der Schnellstartanleitung: Erstellen einer Richtlinienzuweisung, um nicht kompatible Ressourcen zu identifizieren und nicht kompatible Ressourcen mit Azure-Richtlinie zu beheben.

  11. Klicken Sie aufÜberprüfen + erstellen und dann auf Erstellen.

Die Konfiguration wird dann auf neue Azure Arc-fähige Kubernetes oder AKS-Cluster angewendet, die im Rahmen der Richtlinienzuweisung erstellt wurden.

Bei vorhandenen Clustern müssen Sie eventuell manuell einen Wartungstask ausführen. Es dauert in der Regel 10 bis 20 Minuten, bis die Richtlinienzuweisung wirksam wird.

Überprüfen der Richtlinienzuweisung

  1. Navigieren Sie im Azure-Portal zu einem Ihrer Kubernetes-Cluster mit Azure Arc-Unterstützung oder AKS-Cluster.

  2. Wählen Sie im Abschnitt Einstellungen auf der Randleiste GitOps aus.

    In der Liste der Konfigurationen sollte die durch die Richtlinienzuweisung erstellte Konfiguration angezeigt werden.

  3. Wählen Sie im Abschnitt Kubernetes-Ressourcen der Randleiste Namespaces und Workloads aus.

    Sie sollten den Namespace und die Artefakte sehen, die von der Flux-Konfiguration erstellt wurden. Die von den Manifesten im Git-Repository beschriebenen Objekte sollten auch sichtbar im Cluster bereitgestellt sein.

Anpassen einer Richtlinie

Die integrierten Richtlinien decken die wichtigsten Szenarien für die Verwendung von GitOps mit Flux v2 in Ihren Kubernetes-Clustern ab. Aufgrund von Beschränkungen bei der Anzahl der zulässigen Parameter in Azure Policy-Zuweisungen (max. 20) sind jedoch nicht alle Parameter in den integrierten Richtlinien enthalten. Außerdem kann mit den integrierten Richtlinien nur eine einzelne Anpassung erstellt werden, um die Grenze von 20 Parametern einzuhalten.

Wenn Sie ein Szenario haben, das von den integrierten Richtlinien abweicht, können Sie die Einschränkungen überwinden, indem Sie benutzerdefinierte Richtlinien mithilfe der integrierten Richtlinien als Vorlagen erstellen. Sie können benutzerdefinierte Richtlinien erstellen, die nur die von Ihnen benötigten Parameter enthalten, und den Rest hartcodieren, sodass Sie die Grenze von 20 Parametern umgehen können.

Nächste Schritte