Déployez des applications de manière cohérente à l’échelle à l’aide de configurations Flux v2 et Azure Policy
Vous pouvez utiliser Azure Policy pour appliquer des configurations Flux v2 (type de ressource Microsoft.KubernetesConfiguration/fluxConfigurations
) à grande échelle sur des clusters Kubernetes avec Azure Arc (Microsoft.Kubernetes/connectedClusters
) ou AKS (Microsoft.ContainerService/managedClusters
). Pour utiliser Azure Policy, vous sélectionnez une définition de stratégie intégrée et créez une attribution de stratégie.
Avant d’affecter la stratégie qui crée des configurations flux, vous devez vous assurer que l’extension Flux est déployée sur vos clusters. Pour ce faire, affectez d’abord une stratégie qui déploie l’extension sur tous les clusters de l’étendue sélectionnée (tous les groupes de ressources d’un abonnement ou d’un groupe d’administration, ou à des groupes de ressources spécifiques). Ensuite, lors de la création de l’attribution de stratégie pour déployer des configurations, vous définissez des paramètres pour la configuration flux qui sera appliquée aux clusters dans cette étendue.
Pour permettre la séparation des préoccupations, vous pouvez créer plusieurs attributions de stratégies, chacune avec une configuration Flux v2 différente qui pointe vers une autre source. Par exemple, un dépôt Git peut être utilisé par les administrateurs de cluster, tandis que d’autres référentiels peuvent être utilisés par les équipes d’application.
Définitions de stratégie intégrées
Les définitions de stratégie intégrées suivantes prennent en charge ces scénarios :
Description | Stratégie |
---|---|
Installation de l’extension Flux (obligatoire pour tous les scénarios) | Configure installation of Flux extension on Kubernetes cluster |
Configuration de flux à l’aide du référentiel Git public (généralement un scénario de test) | Configure Kubernetes clusters with Flux v2 configuration using public Git repository |
Configuration de flux à l’aide d’un référentiel Git privé avec authentification SSH | Configure Kubernetes clusters with Flux v2 configuration using Git repository and SSH secrets |
Configuration de flux à l’aide d’un référentiel Git privé avec authentification HTTPS | Configure Kubernetes clusters with Flux v2 configuration using Git repository and HTTPS secrets |
Configuration de flux à l’aide d’un référentiel Git privé avec authentification de certificat d’autorité de certification HTTPS | Configure Kubernetes clusters with Flux v2 configuration using Git repository and HTTPS CA Certificate |
Configuration de flux à l’aide d’un dépôt Git privé avec un secret K8s local | Configure Kubernetes clusters with Flux v2 configuration using Git repository and local secrets |
Configuration de flux à l’aide de secrets keyVault et source de compartiment privé | Configure Kubernetes clusters with Flux v2 configuration using Bucket source and secrets in KeyVault |
Configuration de flux à l’aide d’une source de compartiment privé et d’un secret K8s local | Configure Kubernetes clusters with specified Flux v2 Bucket source using local secrets |
Pour rechercher toutes les définitions de stratégie Flux v2, recherchez flux. Pour plus d’informations, consultez définitions intégrées Azure Policy pour les Kubernetes avec Azure Arc.
Prérequis
- Un ou plusieurs clusters Kubernetes avec Arc et/ou akS.
Microsoft.Authorization/policyAssignments/write
autorisations sur l’étendue (abonnement ou groupe de ressources) où vous allez créer les affectations de stratégie.
Créer une attribution de stratégie pour installer l’extension Flux
Pour qu’une stratégie applique des configurations Flux v2 à un cluster, l’extension Flux doit d’abord être installée sur le cluster. Pour vous assurer que l’extension est installée sur chacun de vos clusters, affectez la Configurer l’installation de l’extension Flux sur le cluster Kubernetes définition de stratégie à l’étendue souhaitée.
- Dans le portail Azure, accédez à Stratégie.
- Dans la section Création de la barre latérale, sélectionnez Définitions.
- Dans la catégorie « Kubernetes », sélectionnez la Configurer l’installation de l’extension Flux sur le cluster Kubernetes définition de stratégie intégrée.
- Sélectionnez Affecter.
- Définissez Portée sur le groupe d’administration, l’abonnement ou le groupe de ressources auquel s’appliquera l’attribution de stratégie.
- Si vous souhaitez exclure des ressources de la portée d’attribution de la stratégie, définissez Exclusions.
- Attribuez à l’attribution de stratégie un nom d’affectation facilement identifiable et Description.
- Assurez-vous que l’option Application de la stratégie est définie sur Activée.
- Sélectionnez Vérifier + créer, puis sélectionnez Créer.
Créer une attribution de stratégie pour appliquer des configurations de flux
Ensuite, revenez à la liste Définitions de (dans la section Création de Stratégie) pour appliquer la définition de stratégie de configuration à la même étendue.
Dans la catégorie « Kubernetes », sélectionnez Configurer des clusters Kubernetes avec la configuration Flux v2 à l’aide du dépôt Git public définition de stratégie intégrée, ou l’une des autres définitions de stratégie pour appliquer des configurations flux.
Sélectionnez Affecter.
Définissez l’étendue sur la même étendue que celle que vous avez sélectionnée lors de l’affectation de la première stratégie, y compris les exclusions.
Attribuez à l’attribution de stratégie un nom d’affectation facilement identifiable et Description.
Assurez-vous que l’option Application de la stratégie est définie sur Activée.
Sélectionnez Suivant, puis sélectionnezSuivant à nouveau pour ouvrir l’onglet Paramètres.
Définissez les valeurs de paramètre à utiliser.
- Pour plus d’informations sur les paramètres, consultez le tutoriel sur le déploiement de configurations Flux v2.
- Lors de la création de configurations flux, vous devez fournir une valeur pour un (et un seul) de ces paramètres :
repositoryRefBranch
,repositoryRefTag
,repositoryRefSemver
,repositoryRefCommit
.
Sélectionnez Suivant pour ouvrir la tâche de correction.
Activez l’option Créer une tâche de correction.
Vérifiez que créer une identité managée est cochée et que l’identité dispose d’autorisations Contributeur. Pour plus d’informations, consultez Démarrage rapide : Créer une attribution de stratégie pour identifier les ressources non conformes et corriger les ressources non conformes avec Azure Policy.
Sélectionnez Vérifier + créer, puis sélectionnez Créer.
La configuration est ensuite appliquée aux nouveaux clusters Kubernetes ou AKS avec Azure Arc créés dans l’étendue de l’attribution de stratégie.
Pour les clusters existants, vous devrez peut-être exécuter manuellement une tâche de correction. Cette tâche nécessite généralement 10 à 20 minutes pour que l’attribution de stratégie prenne effet.
Vérifier l’attribution de stratégie
Dans le portail Azure, accédez à l’un de vos clusters AKS ou Kubernetes avec Azure Arc.
Dans la section Paramètres de la barre latérale, sélectionnez GitOps.
Dans la liste des configurations, vous devez voir la configuration créée par l’affectation de stratégie.
Dans la section Ressources Kubernetes de la barre latérale, sélectionnez Espaces de noms et Charges de travail.
Vous voyez normalement l’espace de noms et les artefacts qui ont été créés par la configuration Flux. Vous devez également voir les objets décrits par les manifestes du dépôt Git déployé sur le cluster.
Personnaliser une stratégie
Les stratégies intégrées couvrent les principaux scénarios d’utilisation de GitOps avec Flux v2 dans vos clusters Kubernetes. Toutefois, en raison de limitations sur le nombre de paramètres autorisés dans les affectations Azure Policy (20 maximum), tous les paramètres ne sont pas présents dans les stratégies intégrées. En outre, pour s’adapter à la limite de 20 paramètres, seules une seule kustomization peut être créée avec les stratégies intégrées.
Si vous avez un scénario différent des stratégies intégrées, vous pouvez surmonter les limitations en créant des stratégies personnalisées en utilisant les stratégies intégrées en tant que modèles. Vous pouvez créer des stratégies personnalisées qui contiennent uniquement les paramètres dont vous avez besoin et coder en dur le reste, contournant ainsi la limite de 20 paramètres.