バージョンアップ情報
Flux情報
Fluxとは
FluxはKubernetesクラスターを構成ソースと同期させGitOpsを実現するためのツールのです。
PrometheusやKubernetesエコシステムの他のコアコンポーネント(GrafanaやHelm等)と統合するためにマルチテナントをサポートしており、任意の数のGitリポジトリの同期をサポートします。
主な特徴
Fluxには次のような特徴があります。
- Flaggerと併用することでProgressive Delivery(PD)を実現
- Gitプロバイダー(GitHubやGitLab等)の主要なコンテンツレジストリと連携可能
- Kustomize、Helm、Kubernetes RBAC等の一般的なKubernetesツールとの連携が可能
- Kubernetes RBACや複数のGitリポジトリサポートによるマルチテナンシー
- 正常性の確認や外部システムへのアラート及び外部イベント処理を提供
メリット・デメリット
メリット・必要性
アプリケーションとインフラストラクチャの両方をGitOpsで管理でき、カナリアリリースやA/Bテストなどの高度なデプロイ戦略の実現とコンテナイメージの自動更新が可能です。
また、最小権限の原則に従い、Kubernetesセキュリティポリシーに準拠した設計がされているため、セキュリティ面での考慮事項が少なくなります。
デメリット・注意点・課題
GitOpsの運用モデルへの移行には学習曲線があり、既存のCI/CDパイプラインからの移行には時間と労力が必要です。
Kubernetesの拡張APIシステムに基づいて構築されているため、Kubernetes自体への深い理解が前提となります。
また、複数のコンポーネント(GitOps Toolkitなど)から構成される複雑なアーキテクチャは、初期導入時の障壁となる可能性があります。
ユースケース
Fluxのユースケース例としては以下があります。
- Fluxを使ったアプリケーションデプロイメントの前後でKubernetesジョブの実行
- GitHub Actionsを使用したFlux Helm Releasesのプロモーションワークフローの構成
- GitHubプルリクエストを構成しFluxイメージを更新Jenkins CIを使用してイメージを構築しFluxのイメージ更新自動化と連携
詳細な方法については以下公式ページをご参照ください。
動作環境
次のいずれかのバージョンに一致するKubernetesクラスター上で動作します。
ただし、Flux のインストールを実行するユーザーは、 対象の Kubernetes クラスターのクラスター管理者権限を持っている必要があります。
Kubernetesのバージョン |
Fluxの最低限必要なバージョン |
---|---|
v1.29 |
v1.29.0以上 |
v1.30 |
v1.30.0以上 |
v1.31以降 |
v1.31.0以上 |
Fluxのライセンス
FluxはApache License Version2.0の下でリリースされているオープンソースソフトウェアです。
営利、非営利を問わず、だれでも自由かつ無償で利用・改変することができるほか、ライセンスのコピーの提供や変更内容の告知など、特定の条件を満たすことで再配布も認められています。
オープンソース年間サポートサービス
OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。