Config Sync の概要

このページでは、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 ごとに異なります。

複数の構成ファイルを管理する中央管理者と、それぞれが自前の Namespace 構成ファイルを管理するアプリ オペレータ。

クラスタの構成

Config Sync では、信頼できる単一の情報源から構成の共通セットとポリシー(Policy Controller の制約など)を作成し、登録済みで接続しているクラスタに一貫した方法で適用できます。

kubectl apply コマンドを手動で実行するのではなく、クラスタのフリート全体で構成変更をオーケストレートできます。

名前空間を構成する

Config Sync を使用して、名前空間スコープのポリシー(RBAC ロールなど)で Kubernetes Namespace をプロビジョニングして管理できます。これらのポリシーは、クラスタ内でマルチテナンシーを実装して管理するのに役立ち、アプリケーション チームが独自の構成を安全に管理できるようにします。

次のステップ