ArgoCD は『k8s GitOps の事実上の標準』
ArgoCD は Argo Project のメイン製品で、Git をソースに k8s 環境を宣言的にデプロイします。本記事では編集部の視点で、実務での使い方を公開情報をもとに整理します。Kubernetes 本番運用 もご参考に。
GitOps の原則
(1) Git が単一の真実源。(2) 宣言的設定。(3) 自動同期。(4) 監査可能。(5) 差分の即時検知。
主要な概念
(1) Application:デプロイ単位。(2) AppProject:複数Appのグループ。(3) Source:Git Repo + Path。(4) Destination:対象クラスタ + namespace。(5) Sync Policy:手動 / 自動。
App of Apps パターン
(1) 親 App が子App を管理。(2) 環境別構成に有効。(3) ApplicationSets:動的生成。(4) 大規模管理に最適。(5) GitOps の真価。k8s Helm 実践 もご参考に。
Sync 戦略
(1) Manual:人が承認。(2) Automatic:差分検知で自動。(3) Self-heal:手動変更を上書き。(4) Prune:不要リソース削除。(5) Hooks:sync 前後の処理。
マルチクラスタ対応
(1) 1 ArgoCD で複数クラスタ管理。(2) 権限分離:cluster ごと。(3) 環境別 deploy。(4) Disaster Recovery。(5) ApplicationSets で自動化。バックアップ&DR もご参考に。
セキュリティ
(1) SSO 統合:OIDC/SAML。(2) RBAC:細やか。(3) Sealed Secrets連携。(4) Audit Log。(5) cluster credentials 管理。Kubernetes セキュリティ もご参考に。
運用Tips
(1) Helm / Kustomize 統合。(2) ApplicationSet generators。(3) Notifications:Slack 等連携。(4) Sync 失敗対応。(5) 定期的な health 確認。ChatOps もご参考に。
失敗しがちなパターン
(1) 手動変更で sync 失敗。(2) secrets を Git に。(3) 権限ガバナンス甘い。(4) 同期遅延:CI 連携不在。(5) Disaster Recovery 未設計。対策は、(1)Self-heal 有効化、(2)Sealed Secrets、(3)RBAC 厳格、(4)Webhook 連携、(5)multi-cluster、です。