【ふらっくすしーでぃー】

Flux CD とは?

💡 軽量でシンプルなKubernetes GitOpsツール
📌 このページのポイント
Flux CD:GitOpsによる自動デプロイ Git リポジトリ manifests/ deployment.yaml service.yaml 監視 Flux CD 差分検知 → 自動同期 Reconciliation Loop 適用 Kubernetes Pod: app-v2 Service ConfigMap git push → 自動で反映される Gitの状態 = クラスタのあるべき状態(Single Source of Truth)
Flux CDによるGitOpsの流れ
ひよこ ひよこ

Argo CDとどう違うの?

ペンギン先生 ペンギン先生

Argo CDはリッチなWeb UIと細かいRBACマルチテナント機能が強み。Flux CDはCLIベースで軽量、Kubernetesネイティブな設計。FluxはGitOpsの各機能をコントローラーとして分離しているから、必要な部分だけ使える。UIが欲しいならArgo CD、シンプルさと拡張性ならFlux CD。チームの好みで選べばいいよ

ひよこ ひよこ

どうやって使うの?

ペンギン先生 ペンギン先生

①flux bootstrapコマンドでクラスタにFluxをインストール、②GitRepositoryリソースでソースのリポジトリを指定、③Kustomizationリソースで適用するマニフェストのパスを指定。あとはGitにpushするたびにFluxが変更を検知してクラスタに適用する。flux get allで同期状態を確認できるよ

ひよこ ひよこ

Helmチャートも管理できる?

ペンギン先生 ペンギン先生

できるよ。HelmRepositoryでHelmリポジトリを登録して、HelmReleaseリソースでチャートのバージョンとvaluesを宣言する。Gitにvaluesの変更をpushすればFluxが自動でhelm upgradeを実行してくれる。Helm Controllerが依存関係も考慮して順番にインストールするんだ

ひよこ ひよこ

通知機能はある?

ペンギン先生 ペンギン先生

Notification Controllerがあって、Slack、Teams、DiscordGitHub等に同期結果を通知できる。Alertリソース通知先とフィルタ条件を定義する。また、Webhook Receiverで外部からの通知GitHub Webhookなど)を受け取って即座に同期トリガーすることもできるよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Flux CD」って出てきたら「軽量なKubernetes GitOpsツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「Flux Continuous Delivery」 = フラックス継続的デリバリー
💬 Flux(流れ)。GitからKubernetesへとマニフェストが流れていくイメージだよ
← 用語集にもどる