このページでは、Google Kubernetes Engine に含まれている GitOps サービスである Config Sync の概要について説明します。
GitOps を普遍的なベスト プラクティスとして採用することで、組織は Kubernetes 構成を大規模に管理できます。Git リポジトリなどの信頼できる一元的な情報源を使用することで、安定性、一貫性、セキュリティを向上させることができます。
Config Sync は、任意の数のクラスタにわたる構成とポリシーの同期を自動化することで、GitOps の実装を支援します。自動同期により、クラスタのフリートを一元的に管理し、構成のドリフトを防ぎ、プラットフォーム チームとアプリケーション チームの両方を強化できます。
このページは、GitOps ツールを実装してチームの構成管理を集中化するオペレーターを対象としています。 Google Cloud のコンテンツで使用されている一般的なロールとタスクの例の詳細については、一般的な GKE ユーザーのロールとタスクをご覧ください。
料金
料金については、GKE の料金をご覧ください。
GKE で GitOps に Config Sync を選択する理由
すべての GitOps ツールに安定性と整合性の向上などのメリットがありますが、Config Sync には次のような独自のメリットがあります。
GKE や他の Google Cloudプロダクトとの統合: Config Sync は、 Google Cloud コンソール、Terraform、Google Cloud CLI と互換性があります。Config Sync は GKE の機能を拡張し、Policy Controller、Workload Identity Federation for GKE、Cloud Monitoring などのサービスと連携します。組み込みの統合により、GitOps を設定し、オープンソースの代替手段に必要なメンテナンスの負担を軽減できます。
組み込みのオブザーバビリティ: Config Sync には、Google Cloud コンソールにダッシュボードが含まれています。追加の設定は必要ありません。すべてのクラスタと構成の同期ステータスを一元的に表示したり、Google Cloud CLI を使用して調整の問題を確認したりできます。
スケーラブルなマルチクラスタとマルチチームの管理: Config Sync は、一元化されたプラットフォーム管理と委任されたアプリケーション管理の両方に対応するように設計されています。このアーキテクチャは、水平方向と垂直方向にスケーラブルであることがテストされています。これにより、クラスタを大規模に管理し、アプリケーション チームが独自の環境を安全に管理できるようになります。
Config Sync の仕組み
Config Sync は、一元管理された信頼できる情報源を継続的にモニタリングし、クラスタの状態を自動的に調整して一致させます。信頼できる情報源として Git リポジトリ、OCI イメージ、Helm チャートを使用できます。
次の図は、プラットフォーム管理者が中央ポリシーを管理し、3 人のアプリケーション オペレータが独自の Namespace 構成を管理する方法の概要を示しています。Namespace の管理構成はすべて同じですが、アプリケーション構成は Namespace ごとに異なります。
クラスタの構成
Config Sync では、信頼できる単一の情報源から構成の共通セットとポリシー(Policy Controller の制約など)を作成し、登録済みで接続しているクラスタに一貫した方法で適用できます。
kubectl apply
コマンドを手動で実行するのではなく、クラスタのフリート全体で構成変更をオーケストレートできます。
名前空間を構成する
Config Sync を使用して、名前空間スコープのポリシー(RBAC ロールなど)で Kubernetes Namespace をプロビジョニングして管理できます。これらのポリシーは、クラスタ内でマルチテナンシーを実装して管理するのに役立ち、アプリケーション チームが独自の構成を安全に管理できるようにします。