Flux - AWS Conseils prescriptifs

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Flux

Flux est un autre outil pour Kubernetes qui implémente les GitOps principes d'une manière unique.

GitOps soutien

Area Capacités des outils

Git comme source unique de vérité

Flux utilise les référentiels Git comme source définitive pour définir l'état souhaité du système. Toute la configuration des applications et de l'infrastructure est stockée dans Git.

Configuration déclarative

Flux fonctionne avec des descriptions déclaratives de l'état souhaité de votre cluster. Ces descriptions sont généralement des manifestes Kubernetes, des diagrammes de Helm ou des incrustations Kustomize.

Synchronisation automatisée

Flux surveille en permanence les modifications apportées au dépôt Git. Lorsqu'il détecte des modifications, il les applique automatiquement au cluster.

Natif de Kubernetes

Flux est conçu comme un ensemble de contrôleurs Kubernetes et de ressources personnalisées. Il utilise les mécanismes d'extension de Kubernetes pour fournir des fonctionnalités. GitOps

Modèle de déploiement basé sur le pull

Contrairement aux CI/CD systèmes traditionnels basés sur le push, Flux utilise un modèle basé sur le pull. Le cluster extrait l'état souhaité de Git au lieu d'utiliser un système externe pour appliquer les modifications.

Réconciliation continue

Flux compare constamment l'état réel du cluster avec l'état souhaité dans Git. Il corrige automatiquement toute dérive détectée entre ces états.

Multilocataire

Flux soutient la mutualisation grâce à ses concepts de kustomisations et. HelmReleases Les différentes équipes peuvent gérer leurs propres parties de la configuration de manière indépendante.

Livraison progressive

Flux prend en charge les stratégies de déploiement avancées, telles que les versions et les A/B tests de Canary, via son composant Flagger.

Intégration avec Helm

Flux inclut un support natif pour Helm, ce qui vous permet de gérer facilement les versions de Helm GitOps.

Automatisation de la mise à jour

Flux peut mettre à jour automatiquement les images des conteneurs dans Git lorsque de nouvelles versions sont disponibles dans le registre des conteneurs.

Personnaliser le support

Vous pouvez utiliser le support natif fourni par Flux for Kustomize pour personnaliser et corriger les manifestes Kubernetes.

Sécurité et RBAC

Flux s'intègre à Kubernetes RBAC pour le contrôle d'accès. Il prend en charge la gestion des secrets via différents backends.

Observabilité

Flux fournit des informations sur le statut et des mesures relatives à la réconciliation et aux opérations. Il s'intègre aux outils de surveillance pour une meilleure observabilité.

Architecture basée sur les événements

Flux utilise une approche axée sur les événements pour mettre en œuvre les rapprochements et les mises à jour.

Extensibilité

L'outil est conçu pour être extensible, afin que vous puissiez ajouter des contrôleurs et des ressources personnalisés.

Synchronisation entre clusters

Flux prend en charge la gestion de plusieurs clusters à partir d'un seul ensemble de référentiels.

Gestion des dépendances

Il permet de définir les dépendances entre les différentes parties de votre système et garantit le bon ordre des opérations.

Récepteurs Webhook

Vous pouvez configurer Flux pour recevoir des webhooks de fournisseurs Git ou d'autres systèmes afin de démarrer une réconciliation immédiate.

En mettant en œuvre ces GitOps principes, Flux fournit un système robuste et flexible pour gérer les clusters et les applications Kubernetes. Il garantit que votre infrastructure et vos applications sont toujours synchronisées avec vos référentiels Git et assure la cohérence, la fiabilité et la facilité de gestion dans les environnements Kubernetes complexes. L'approche native de Kubernetes de l'outil et l'accent mis sur l'automatisation le rendent particulièrement adapté aux environnements cloud natifs.

Pour les scénarios et les exigences auxquels Flux peut répondre, consultez les cas d'utilisation de Flux plus loin dans ce guide. Pour une comparaison entre Argo CD et Flux, voir Comparaison des fonctionnalités plus loin dans ce guide.

Pour plus d'informations, consultez la documentation de Flux.

Architecture

Le schéma suivant illustre un flux de travail GitOps sur CD piloté qui utilise Flux au sein d'un cluster EKS. Pour des informations détaillées, consultez la documentation de Flux.

Architecture de flux et flux de travail activés AWS.

où :

  • Étape 1 : fusion par pull request (PR). Un développeur valide les modifications apportées aux manifestes Kubernetes ou aux graphiques Helm stockés dans un référentiel Git. Lorsque le PR a été révisé et fusionné dans la branche principale, l'état souhaité de l'application est mis à jour dans le contrôle de source.

  • Étape 2 : synchronisation du référentiel. Flux s'exécute dans un espace de noms dédié dans le cluster EKS et surveille en permanence le référentiel Git configuré. Lorsqu'il détecte des modifications, il extrait les dernières mises à jour pour réconcilier l'état déclaré.

  • Étape 3 : Déploiement vers l'espace de noms cible Flux compare l'état souhaité depuis Git avec l'état réel du cluster. Il applique ensuite les modifications nécessaires à l'espace de noms de charge de travail cible afin que l'application soit déployée ou mise à jour en conséquence.