翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
フラックス
Flux は、GitOps の原則を独自の方法で実装する Kubernetes 用のもう 1 つのツールです。
GitOps のサポート
| [面積] | ツール機能 |
|---|---|
信頼できる唯一のソースとしての Git |
Flux は Git リポジトリをシステムの目的の状態を定義するための最終的なソースとして使用します。アプリケーションとインフラストラクチャのすべての設定は Git に保存されます。 |
宣言型設定 |
Flux は、クラスターの目的の状態を宣言的に記述します。これらの説明は通常、Kubernetes マニフェスト、Helm チャート、または Kustomize オーバーレイです。 |
自動同期 |
Flux は Git リポジトリの変更を継続的にモニタリングします。変更を検出すると、自動的にクラスターに適用されます。 |
Kubernetes ネイティブ |
Flux は、一連の Kubernetes コントローラーとカスタムリソースとして構築されています。Kubernetes の拡張機能メカニズムを使用して GitOps 機能を提供します。 |
プルベースのデプロイモデル |
従来のプッシュベースの CI/CD システムとは異なり、Flux はプルベースのモデルを使用します。クラスターは、外部システムを使用して変更をプッシュするのではなく、Git から目的の状態を取得します。 |
継続的な調整 |
Flux は、クラスターの実際の状態を Git の望ましい状態と常に比較します。これらの状態間で検出されたドリフトは自動的に修正されます。 |
マルチテナンシー |
Flux は、Kustomizations と HelmReleases の概念を通じてマルチテナンシーをサポートします。異なるチームが設定の独自の部分を個別に管理できます。 |
プログレッシブ配信 |
Flux は、Flager コンポーネントを通じて、Canary リリースや A/B テストなどの高度なデプロイ戦略をサポートします。 |
Helm 統合 |
Flux には Helm のネイティブサポートが含まれているため、GitOps を通じて Helm リリースを簡単に管理できます。 |
イメージ更新の自動化 |
Flux は、コンテナレジストリで新しいバージョンが利用可能になると、Git のコンテナイメージを自動的に更新できます。 |
Kustomize サポート |
Flux for Kustomize が提供するネイティブサポートを使用して、Kubernetes マニフェストをカスタマイズしてパッチを適用できます。 |
セキュリティと RBAC |
Flux は、アクセスコントロールのために Kubernetes RBAC と統合されています。さまざまなバックエンドによるシークレット管理をサポートしています。 |
オブザーバビリティ |
Flux は、調整とオペレーションに関するステータス情報とメトリクスを提供します。モニタリングツールと統合してオブザーバビリティを強化します。 |
イベント駆動型アーキテクチャ |
Flux は、イベント駆動型のアプローチを使用して調整と更新を実装します。 |
拡張性 |
このツールは拡張可能なように設計されているため、カスタムコントローラーとリソースを追加できます。 |
クラスター間の同期 |
Flux は、単一のリポジトリセットからの複数のクラスターの管理をサポートします。 |
依存関係管理 |
これにより、システムのさまざまな部分間の依存関係を定義し、オペレーションの正しい順序を確保できます。 |
Webhook レシーバー |
Git プロバイダーや他のシステムからウェブフックを受信するように Flux を設定して、即時調整を開始できます。 |
これらの GitOps 原則を実装することで、Flux は Kubernetes クラスターとアプリケーションを管理するための堅牢で柔軟なシステムを提供します。これにより、インフラストラクチャとアプリケーションが常に Git リポジトリと同期され、複雑な Kubernetes 環境で一貫性、信頼性、管理が容易になります。ツールの Kubernetes ネイティブアプローチと自動化に焦点を当てることで、特にクラウドネイティブ環境に適しています。
Flux が対処できるシナリオと要件については、このガイドの後半にある「Flux のユースケース」を参照してください。Argo CD と Flux の比較については、このガイドの後半にある「特徴の比較」を参照してください。
詳細については、Flux のドキュメント
アーキテクチャ
次の図は、EKS クラスター内で Flux を使用する GitOps 駆動型 CD ワークフローを示しています。詳細については、Flux のドキュメント
各パラメータの意味は次のとおりです。
-
ステップ 1: プルリクエスト (PR) マージ。開発者は、Git リポジトリに保存されている Kubernetes マニフェストまたは Helm チャートに変更をコミットします。PR がレビューされ、メインブランチにマージされると、アプリケーションの望ましい状態がソース管理で更新されます。
-
ステップ 2: リポジトリ同期。Flux は EKS クラスター内の専用名前空間内で実行され、設定された Git リポジトリを継続的にモニタリングします。変更を検出すると、最新の更新がプルされ、宣言された状態が調整されます。
-
ステップ 3: ターゲット名前空間へのデプロイ。Flux は、Git からの目的の状態をクラスター内のライブ状態と比較します。次に、ターゲットワークロード名前空間に必要な変更を適用して、それに応じてアプリケーションをデプロイまたは更新します。