Anthos on GKE を Terraform でデプロイする パート 1: Config Sync による GitOps
Google Cloud Japan Team
※この投稿は米国時間 2021 年 8 月 17 日に、Google Cloud blog に投稿されたものの抄訳です。
Anthos Config Management(ACM)は、クラウド プラットフォームの管理者にクラスタの構成を効率化するためのさまざまな手法を提供します。ACM の機能の 1 つである Config Sync では、Git リポジトリを使用して共通の構成を作成し、それをフリート内の Kubernetes クラスタに自動的に適用することで、構成管理で慣れ親しんだコードレビューの共同作業プロセスを実現できます。ACM のもう 1 つの機能である Policy Controller は、組織の要件を遵守したセキュリティ ガードレールを適用します。このブログシリーズでは、これらのサービスの詳細と、Terraform で使用を開始する方法についてご紹介します。
多くのプラットフォーム管理者は、Infrastructure as Code を採用して再現性のある予測可能なデプロイを実現することを好みます。これは、Kubernetes クラスタ上で ACM 機能を構成する場合にも当てはまります。
これまで、Terraform を使用していたプラットフォーム管理者は HCL からクラスタ構成のモデリングへのスムーズな移行ができず、プロビジョニングを完了するためには、オペレーターに一時的な権限を付与する必要がある手作業に頼らざるを得ませんでした。
新しい GKEHub API および Google Cloud Platform 用の Terraform プロバイダ(google_gke_hub_feature、google_hub_feature_membership、google_gke_hub_membership)で有効化された新しいリソースにより、Git リポジトリへの指定や Policy Controller の起動など、ラスト ワンマイルのクラスタ構成を自動化できるようになりました。
プラットフォーム管理者にとっては、名前空間、サービス アカウント、RBAC などのクラスタ構成を Kubernetes の慣用的な方法でモデリングするという、これまでの課題が解決されます。つまり、Terraform HCL での手間のかかる対応は不要です。さらに、この自然な IaC アプローチは、監査可能性と透明性を向上させ、構成ミスやセキュリティ ギャップのリスクを低減します。
この 3 回のブログシリーズでは、GKE で Anthos の機能を有効にする方法をご紹介します。まずは Config Sync でクラスタの状態を指定した Git リポジトリに整合させます。
Terraform の構成にある次の GKE クラスタのリソースに基づいて実行します。
その後、GKE Hub メンバーシップと configmanagement 機能を有効にできます。
その後、各機能の追加設定を構成できます。sync_repo はクラスト構成を保存しているリポを指し、poliy_dir はリポの root を指して整合させ、リポ内の特定の sync_branch を指します。
この構成を Terraform で適用すると、Config Sync が有効になり、リポを使用したクラスタの状態が自動的に同期され、クラスタ上に Kubernetes の構成オブジェクトが即座に作成されます。Pod、Deployment、Service、その他の K8s のネイティブ オブジェクトは自動的に作成されます。こちらの記事で、リポ内の構成ファイルを整理する方法についての詳細をご覧ください。
これで、クラスタが完全にプロビジョニングされ、「ラスト ワンマイル」の構成ステップは必要なくなりました。
このリポは、人気の高い WordPress の構成を含むリポと同期したクラスタをプロビジョニングする完全な例を示します。
シリーズの次のパートでは、Terraform を使って ACM のもう 1 つの機能である Policy Controller を構成する方法をご紹介します。
-エンジニアリング マネージャー Steven Linde
-エンジニアリング マネージャー Alex Bulankou