Anthos Config Management の新機能で Kubernetes クラスタの状態を整合させる
Google Cloud Japan Team
※この投稿は米国時間 2021 年 8 月 4 日に、Google Cloud blog に投稿されたものの抄訳です。
デジタル ネイティブな大企業から中堅の製造企業まで、今日ではどの企業も、作成するソフトウェアの数が以前よりも増え、ソフトウェアをデプロイする場所や頻度も増大しています。Anthos Config Management を使用すると、Kubernetes リソースに対して一貫した構成とポリシーを設定し、実行できます。このサービスは、リソースを構築し運用する場所を問わないうえ、Google Cloud サービスも同じ方法で管理できます。
本日は、Anthos Config Management の一部となっている Config Controller をご紹介します。これは、Google Cloud リソースのプロビジョニングとオーケストレーションを行うためのホスト型サービスです。このサービスでは、Kubernetes を管理するのと同じ方法で Google Cloud リソースのプロビジョニング、有効化、オーケストレーションを行える API エンドポイントが用意されています。コンポーネントのインストールと管理を自分で行う必要はありません。また、Kubernetes のリソース管理や GitOps に関する専門知識も不要です。Google Cloud がお客様の代わりにこうしたものを管理するからです。
本日は、ハイブリッド クラウドとマルチクラウドのユースケースでの利用に加えて、Anthos Config Management を Google Kubernetes Engine(GKE)でもスタンドアロン サービスとして利用できるようになったこともお知らせいたします。GKE を利用されているお客様は、Google Cloud での構成およびポリシーの自動化も、クラスタあたりの追加費用を抑えつつご利用いただけます。
今回発表するサービスにより、構成とポリシーの管理へのまったく新しいアプローチが可能になります。手続き型すなわち命令型ではなく、記述型すなわち宣言型のアプローチです。では、詳しく見ていきましょう。
Kubernetes で構成とポリシーを自動化する
開発チームは、アプリを迅速に構築し、簡単にデプロイするために、安定した安全な環境を必要としています。今日のプラットフォーム チームの多くは、必要なインフラストラクチャ コンポーネント、アプリ、クラウド サービスを同じ方法でプロビジョニングして構成する業務に追われがちです。別々の場所に配置されているこれらのものを、すべて最新の状態に保ち、パッチを当てて安全性を保つために奔走しています。
これは大変な苦労ですが、今に始まったことではありません。プラットフォーム管理者は何年も前から、新しい Infrastructure as Code 用の言語やツールを使用して部分的に自動化しつつ、構成を手作業で行っています。一方、クラウドとオンプレミスでは、新しいコンテナ化開発環境を数分で立ち上げることができます。自動化された CI/CD プロセスを使えば、コードを 1 日に何百回も本番環境にプッシュできます。ではなぜ、構成と本番環境にずれが生じるのでしょうか。
理由は、必要なものの記述と、欲しいものの作成と、壊れたものの修復を行うための、一貫した自動化された方法を開発するには、時間と労力がかかるためです。宣言型の Kubernetes Resource Model(KRM)を使用すると、リソースの定義と更新を一貫した方法で行うことで、この労力が軽減されます。つまり、必要なものを記述すれば、Kubernetes がこれを実現してくれます。ACM を使用すると、安全なランディング ゾーンの作成やブループリントからの GKE クラスタのプロビジョニングなど、事前に構築された、独自の構成とポリシーの自動化を追加することで、さらに簡単に労力を軽減できます。ブループリントは、プラットフォーム チームが Kubernetes と Google Cloud サービスの両方を毎回同じ方法で構成するときに役立ちます。
単一のリソースモデルでインテントを記述する
Kubernetes API サーバーには、コンテナ インフラストラクチャの状態を YAML で宣言した状態と常に一致させるコントローラが実装されています。たとえば、Kubernetes は、ロードバランサとサービス プロキシが常に作成され、正しいポッドに接続され、適切に構成されるよう保証できます。ただし、KRM が管理できるのはコンテナ インフラストラクチャだけではありません。KRM を使用すると、クラウド データベース、ストレージ、ネットワークなどのリソースをデプロイ、管理できます。また、カスタム リソース定義を使用して、独自に開発したアプリやサービスを管理することもできます。
信頼できる唯一の情報源から必要なものを作成する
Anthos Config Management では、構成を一度宣言して設定すれば、これを覚えておく必要はありません。KRM や GitOps スタイルの構成の専門知識はいりません。ホストされた Config Controller サービスが構成を行います。Config Controller は、インフラストラクチャ、アプリ、クラウド サービスのプロビジョニング、所定のインテントに合わせた構成、構成に生じるずれの監視を行います。また、新しいリソース宣言を Git リポジトリにプッシュするたびに変更を適用します。構成の変更は、Git プッシュと同様に簡単で、開発ワークフローと容易に統合できます。
Anthos Config Management は Config Sync を使用して、登録されたクラスタとリソースの状態が一致するよう継続的に調整します。つまり、GKE、Anthos、またはその他の登録されたクラスタの状態が一致するよう調整し、未検証の変更が稼働中のクラスタに絶対にプッシュされないようにします。Anthos Config Management は、コードレビューを要求し、破壊的変更を正常な動作状態にロールバックすることで、開発チームまたは運用チームが Git の信頼できる情報源を遵守せずに変更を行うリスクを低減します。つまり、Anthos Config Management を使用することで、最良の構成管理を行いやすくなります。
自動コンプライアンスのための不備の修復
Anthos Config Management の Policy Controller を使用すると、完全にプログラム可能なポリシーを容易に作成し、接続されているすべてのクラスタに適用できます。ポリシーは、構成の変更がカスタムのセキュリティ管理、運用管理、またはコンプライアンス管理に違反するのを防止するガードレールの役割を果たします。たとえば、コンプライアンスに反する API リクエストを積極的に遮断する、各名前空間にラベルを付けるよう要求する、Pod が特権付きコンテナを実行することを防ぐ、コンテナがマウントできるストレージ ボリュームの種類を制限する、などのポリシーを設定できます。
Policy Controller は、オープンソースの Open Policy Agent Gatekeeper プロジェクトをベースにしており、広く行われているセキュリティ管理手段およびコンプライアンス管理手段用にあらかじめ構築されたポリシーのライブラリをすぐに使用できるよう、Google Cloud によって強化されています。お客様は、深い専門知識がなくても簡単に安全なベースラインを設定でき、ACM は、単一のクラスタ(GKE など)、またはオンプレミスや他のクラウド プラットフォームの分散型の Anthos クラスタ群にポリシーを適用します。制約テンプレートをセキュリティに精通した専門家に作成させることで、自身のカスタム ポリシーを監査、追加できます。この制約テンプレートは、ポリシーコードを記述したり管理したりする方法を覚えていなくても、誰でも複数の開発環境または本番環境で呼び出せます。監査機能が搭載されているため、プラットフォーム管理者がすべての違反行為を監査でき、コンプライアンス レビューを簡素化できます。
各クラスタを一貫して構成、管理する
Config Connector、Config Sync、Policy Controller をお客様に代わって実行するホスト型サービスの Config Controller をプレビュー版でご利用いただけます。Config Controller では、Config Connector が活用されます。これにより、継続的監視機能と自己修復機能を使用して、Google Cloud のリソースを他の Kubernetes リソースと同じように管理できます。たとえば、Config Connector に Cloud SQL インスタンスとデータベースの作成を依頼できます。Config Connector は、Bigtable、BigQuery、Pub/Sub、Spanner、Cloud Storage、Cloud Load Balancer など、60 以上の Google Cloud リソースを管理できます。
ACM を使用して個々のリソースに構成とポリシーを自動適用して、一貫したリソースモデルを採用したら、ブループリントを使用して次のステップを進めてください。ブループリントは、複数のリソースを一度にデプロイして管理するための独自ソリューションを文書化した、構成とポリシーのパッケージです。ブループリントは、ベスト プラクティスとポリシー ガードレールを取り込み、これらをパッケージ化します。これにより、Config Controller を使用して、任意の Kubernetes クラスタにこれらを完全なソリューションとしてデプロイできます。ブループリントを使用すると、複数のリソースを一度に管理できます。あるいは、ポリシーの要件を満たすよう適切に構成された簡単に複製できる環境であるランディング ゾーンを独自に作成できます。この環境は独自のベスト プラクティス ガイドラインに適合しており、ネットワーク接続が適切になされ、セキュリティが確保されています。
Vienna Insurance Group は Viesure Innovation Center で Anthos Config Management を使用しており、コンプライアンス体制が改善されたのはこのサービスのおかげであると評価しています。
「Google の Landing Zones と Config Controller のおかげで、当社の Google Cloud インフラストラクチャを迅速かつ安全にセットアップするために必要なさまざまなツールが、一通り揃いました。Google のポリシー コントローラは、当社のすべての Google Cloud リソースのコンプライアンスを確保するうえで重要な手段です。」 - viesure innovation center GmbH、技術責任者 Rene Schakmann 氏
使ってみる
Anthos Config Management on GKE の一般提供は、本日より開始されます。GKE を利用されているお客様は、Anthos Config Management を追加費用を抑えてご利用いただけます。GKE のお客様に公開し、ホスト型マネージド サービスとして皆様に提供することで、「サービスとしての KRM」を活用して、データセンターからクラウドまでの Kubernetes リソース管理を簡素化し、そのセキュリティを確保することが今まで以上に容易になります。
ACM の技術的な詳細については、Policy Controller の TL である Max Smythe が出演した Google の Kubernetes Podcast の最新回をご覧ください。
-プロダクト、GKE、Anthos 担当バイス プレジデント Jeff Reed