このページでは、Config Sync とそのメリットについての概要を説明します。
Config Sync を使用すると、Kubernetes 構成オブジェクトの管理を簡素化できます。Config Sync を使用すると、構成ファイルを Git リポジトリなどの単一の信頼できる情報源に一元化できます。これにより一貫性が確保され、構成のずれを防止できます。
このページは、GitOps ツールを実装してチームの構成管理を集中化するオペレーターを対象としています。コンテンツで参照する一般的なロールとタスク例の詳細については、一般的な GKE Enterprise ユーザーロールとタスクをご覧ください。 Google Cloud
料金
Config Sync には、Google Kubernetes Engine(GKE)Enterprise エディション ライセンスが必要です。
Config Sync のメリット
Config Sync は、信頼できる単一の情報源からチームがクラスタまたは名前空間全体でリソースを同期できるようにすることで構成管理を集中化する、プラットフォーム管理者向けの GitOps サービスです。
Kubernetes 構成を大規模に管理する組織にとって、GitOps は普遍的なベスト プラクティスであると考えられます。すべての GitOps ツールに、安定性の向上、可読性の向上、整合性、監査やセキュリティの強化というメリットがあります。Config Sync は Google Kubernetes Engine(GKE)Enterprise エディションの一部であり、次のような利点があります。
- Google Kubernetes Engine(GKE)Enterprise エディションとの統合: プラットフォーム管理者は、Google Cloud コンソールで Terraform、または Google Cloud CLI を使用して数回クリックするだけで、フリートに接続されているクラスタに Config Sync をインストールできます。このサービスは、他の Google Kubernetes Engine(GKE)Enterprise エディションや Google Cloudのサービス(Policy Controller、Workload Identity Federation for GKE、Cloud Monitoring など)と連携するよう構成済みです。
- 組み込みのオブザーバビリティ: Config Sync には、Google Cloud コンソールに組み込まれたオブザーバビリティ ダッシュボードがあります。追加の設定は必要ありません。プラットフォーム管理者は、Google Cloud コンソールにアクセスするか、Google Cloud CLI を使用して、同期と調整の状態を確認できます。
- マルチクラウドとハイブリッドのサポート: Config Sync は、すべての一般提供リリースの前に複数のクラウド プロバイダとハイブリッド環境でテストされています。サポート マトリックスを確認するには、Google Kubernetes Engine(GKE)Enterprise エディションのバージョンとアップグレードのサポートをご覧ください。
Config Sync の仕組み
管理者がクラスタを単一のルート リポジトリ(管理者が管理)と複数の名前空間リポジトリ(アプリケーション オペレータが管理)にどのように同期するかについての概要を、次の図に示します。
中央管理者が組織の一元化されたインフラストラクチャを管理し、クラスタと組織内のすべての Namespace にポリシーを適用します。実際のデプロイメントを管理するアプリケーション オペレータは、取り組んでいる Namespace 内のアプリケーションに構成を適用します。
クラスタの構成
Config Sync では、信頼できる単一の情報源から構成の共通セットとポリシー(Policy Controller の制約など)を作成し、登録済みで接続しているクラスタに一貫した方法で適用できます。
kubectl apply
コマンドを手動で実行するのではなく、GitOps スタイルのツールを使用して一連のクラスタに対する構成変更をオーケストレートできます。詳細については、Config Sync を使用した安全なロールアウトをご覧ください。このチュートリアルと他のチュートリアルでは、信頼できる情報源として Git リポジトリを使用しますが、OCI イメージまたは Helm チャートを使用することもできます。
Namespace の構成
Config Sync で名前空間を構成すると、次のことが可能になります。
- 登録済みで接続しているクラスタ全体で、名前空間スコープのポリシー(RBAC ロールなど)を使用して、Kubernetes 名前空間のプロビジョニングを一貫した方法で行うことができます。名前空間スコープのポリシーを使用すると、クラスタ内でマルチテナンシーの実装と管理をより簡単に行うことができます。
- 構成ファイルを複製することなく、複数の関連する Namespace にポリシーを適用します。特定の Namespace または Namespace セットの構成をオーバーライドまたは拡張できるため、テナント間で一貫したポリシーを簡単に適用できます。