【正解】D
【0からの解説】
①前提知識
・フリート:GKE では、複数の Kubernetes クラスタを「フリート」という論理的なグループとして登録し、一元的に管理できます。Google Cloud 上の GKE だけでなく、GKE attached clusters の仕組みを使うことで Amazon EKS や Azure AKS などの他社クラウドのクラスタもフリートに登録できます。
・Config Sync:Git リポジトリ(または OCI イメージ)を「信頼できる唯一の情報源」として、Kubernetes の構成(Namespace、RBAC、Deployment など)を多数のクラスタに自動的に同期する、Google 提供の GitOps ツールです。クラスタ上で誰かが手動で変更しても、リポジトリの状態に自動的に戻す(ドリフトの是正)ため、すべての環境で構成の一貫性を保てます(旧 Anthos Config Management の機能)。
・Policy Controller:オープンソースの OPA Gatekeeper をベースにしたポリシー適用機能で、「特権コンテナを禁止する」「必須ラベルを付ける」といったポリシーを、Kubernetes API へのリクエスト時(アドミッション コントロール)に強制し、既存リソースの違反も監査します。CIS ベンチマークなどの事前構築済みポリシー バンドルも利用できます。
②要件の整理
・GKE と EKS のマルチクラウド環境。
・「構成管理の効率化」「セキュリティ ポリシーの適用」「一貫したアプリケーション デプロイ」の 3 つすべてを満たす必要がある。
・「Google が推奨するプラクティス」→ Google が提供・サポートするマネージドな機能を優先し、自作のコントローラやスクリプトは避ける。
③正解が要件をどう満たすか
D は、EKS を含むすべてのクラスタをフリートに登録したうえで、Config Sync により一元化された Git リポジトリから構成とアプリケーション マニフェストを全クラスタへ同期し(構成管理の効率化と一貫したデプロイ)、Policy Controller によって OPA Gatekeeper ベースのポリシーを全クラスタで強制・監査します(セキュリティ ポリシーの適用)。Config Sync と Policy Controller は GKE attached clusters 上でも利用でき、Google Cloud コンソールから全環境の同期状態やポリシー違反を一元的に確認できます。Google が推奨するマルチクラウドの Kubernetes 管理方法であり、すべての要件を満たします。
【誤りの選択肢】
A:Argo CD や OPA はそれぞれ有力なオープンソース ツールですが、「マルチクラスタの構成管理用のコントローラを開発する」という自作部分が含まれ、その開発と保守に大きな負担が生じます。Google が提供・サポートする統合ソリューション(Config Sync と Policy Controller)を使う D に比べ、Google の推奨プラクティスとは言えません。
B:Crossplane、FluxCD、Kyverno の組み合わせでも同様の機能を構築できますが、3 つの異なるオープンソース ツールを自社で導入・統合・運用する必要があり、Google のサポートやコンソールでの一元的な可視化も得られません。「Google が推奨するプラクティス」という条件に合いません。
C:Config Sync を使う点は良いものの、セキュリティ ポリシーの適用を「スクリプト」で行うのは、アドミッション時の強制や継続的な監査ができず、抜け漏れや保守負担が生じます。ポリシーの適用には Policy Controller を使うのが Google の推奨であり、C はその点で劣ります。
【参考】
フリート管理 | Google Kubernetes Engine (GKE)Google Cloud を使用してハイブリッド アーキテクチャとマルチクラウド アーキテクチャを構築する