🎉

GKE Enterprise で追加された機能を紹介

2023/10/04に公開

はじめに

こんにちは。クラウドエース株式会社で SRE をしている間瀬です。

今回は 2023 年 8 月末に Google Cloud Next'23 で発表された GKE Enterprise において追加された機能について紹介させていただきます。

記事執筆時点において GKE Enterprise は早期リリース状態であり利用するためには個別に Google Cloud のアカウントチームへ連絡して機能解放を依頼する必要がありますのでご注意ください。
連絡方法などの詳細については公式docを参照してください。

尚、既に Anthos を利用されている方は上記の手続きなしで利用することが可能です。

GKE Enterprise について

GKE Enterprise 自体は GKE(Google Kubernetes Engine) の新たなエディションとなります。従来の GKE が GKE Standard エディションと位置付けられて新たに GKE Enterprise エディションが加わることになります。

GKE Enterprise は利用者のサービスの規模が拡大するにつれて課題となる Google Cloud マルチクラスタ、マルチクラウド、ハイブリッドクラウド環境でのマルチクラスタの管理をサポートします。具体的にはフリートという 論理的なグルーピングの機能を用いて、複数のクラスタをグループ化することでグループ単位に管理を行えるようにします。

フリートと聞くとピンと来る方が多いかもしれませんが、従来より Google Cloud から提供されていた Anthos でもフリートという機能が提供されています。GKE Enterprise は Anthos の後継にあたり今後は GKE Enterprise としてアップデートされていくようです。

管理クラスタの遷移

Standard モードクラスタ、Autopilot モードクラスタとの関係

GKE Standard エディションと聞くと、ややこしく感じるのが Autopilot モードクラスタはどこいったの?と困惑される方がいるかもしれません。(私は困惑しました。)

上記で紹介した GKE Enterprise エディション、GKE Standard エディションと Autopilot モードクラスタ、Standard モードクラスタは別物になります。
いずれのモードのクラスタも Enterprise エディション、Standard エディションにおいて利用可能なようです。表にすると以下のようになります。

モード/エディション GKE Enterpriseエディション GKE Standardエディション
Standardモードクラスタ
Autopilotモードクラスタ

記事の趣旨とずれるので詳細な説明はしませんが、モード間の差異は以下の通りです。

  • Standard モードクラスタ
    • コントロールプレーンがフルマネージドでワーカーノードは一部利用者が管理するモードで比較的柔軟なクラスタ管理が可能。
  • Autopilot モードクラスタ
    • コントロールプレーン、ワーカーノード共にフルマネージドとなりクラスタの管理が不要なモード。

以降では GKE Enterprise エディション、GKE Standard エディションはそれぞれエディションを略して表記させていただきます。

GKE Enterprise、GKE Standard の機能差異

以下の表は記事執筆時点において、GKE Enterprise のみ利用可能な機能の一覧になります。
※両エディションにて利用可能な全ての機能比較が困難なので、差分のみ記載しています。

基本的には従来 Anthos が提供していた機能が GKE Enterprise の機能としてラインナップされていますが、一部 GKE Enterprise のリリースと併せて新機能が追加されています。

GKE Enterprise のみ提供する機能 GKE Enterprise としての新機能
Config Sync -
Service Mesh -
Policy Controller -
チーム
Google Distributed Cloud、他クラウド上のGKE管理 -
マルチクラスタIngress -
Binary Authorization -
Advanced Vulnerability Insights
Connect Gateway -

本記事の後半では、これら新機能について深掘りして紹介していきたいと思います。

GKE Enterprise が解決する課題、ユースケースについて

大規模なサービスを開発・運用していて、マルチクラスタ構成や多くのチームメンバがプロジェクトに参画しているようなケース

サービスが拡大することに伴って、クラスタの規模や別のインフラへクラスタを拡大させたり、開発・運用するチームを増やす必要が出てくることから、複数のクラスタを管理しなければならないことによる負荷や、チーム別の権限設計、チームメンバの出入りに必要な作業による負荷が増えて運用コストの増加、生産性低下、品質低下に繋がる可能性があります。

このような場面において GKE Enterprise が提供する複数のクラスタを横断的に管理する機能を利用することで効率的にクラスタを管理することが可能になります。

新機能の紹介

チーム

本機能を利用することで、マルチクラスタにおけるチーム別の権限設計を効率的に実装してチームメンバの出入りにも容易に対応することが可能です。全体像は以下のようになります。

チーム概要図

  • フリートというグループの中に更にチームというグループを作成して、チームにユーザーにあたる Google アカウントまたは、Google グループ(推奨)を所属させます。
  • チーム に所属させたメンバー別に権限を Admin, Editor, Viewer から1つ選択します。
  • チーム とクラスタ及び、Namespace を紐づけることで指定されたそれぞれの権限でアクセスできるようになります。

権限制御の仕組み

チームによる権限制御は、Kubernetes の RBAC によって実現されています。

まず、クラスタがフリートに所属した際に ClusterRole として Admin, Edit, View が作成されるようです。その後、チームが作成されることで以下のような操作が行われます。

  • Namespace が作成される。
  • Namespace に対してチームに所属するメンバー別に対応する権限(ClusterRole)で Rolebinding が作成される。

Rolebinding

尚、Admin と Edit の権限差としては RBAC リソースを参照・更新できるかという差異があります。

IAMによる権限制御との使い分けについて

従来より、GKE クラスタ内リソースに対する操作権限は IAM か Kubernetes が提供する RBAC にて制御することが可能です。

IAM RBAC
プロジェクト単位での権限制御が可能 クラスタ単位での権限制御が可能で柔軟な制御が可能 → チーム機能の活用によってチームスコープ別に権限制御が可能に。

今回紹介しているチームは RBAC を用いて実現されていますが、GKE では IAM での権限も適用されるため、本機能を使って権限制御を行う場合は IAM との権限のバランスに気をつけるようにする必要があります。

IAM でクラスタ管理者のような強い権限を持つロールを与えてしまっていると、チーム(RBAC)によって権限制御をしていてもプロジェクト内全てのクラスタ内リソースに対する更新・参照権限を持ってしまうことになります。

そのため、例えば IAM ではクラスタリソースに対する操作権限を持ったロールを付与しないか、参照権限のみ付与して、更新権限をチームで管理することでチームが管轄する Namespace のみ更新可能といった制御ができます。

チームスコープでのモニタリング

チーム機能では権限制御だけでなく、チームが管理対象とするスコープ内でのリソース使用状況等のモニタリングが可能です。
team-monitoring

Advanced Vulnerability Insights

従来より提供されている GKE クラスタノード、コンテナOSの脆弱性スキャンに加え、コンテナ上で動作する言語のパッケージまでスキャンすることが可能になります。

このスキャンはマルチクラスタ上のワークロード全てに対して実施することが可能で、スキャンの結果をダッシュボードより一元的に確認することもできるため、クラスタ規模の拡大に依らずに効率的なモニタリングができるようになります。

見辛いかもしれませんが、下記図中の赤枠内に本機能によってスキャンされた結果が表示されます。例では、Java ライブラリの脆弱性が指摘されています。

security-posture

GKE Enterprise の料金

GKE Enterprise と GKE Standard の差異はコンピューティング料金とは別に課金される GKE 利用にかかる料金が異なってきます。

GKE Standard は時間あたり一律課金であることに対して、GKE Enterprise では確保するリソースの vCPU に応じて時間課金されるようです。
詳細は公式docを参照してください。

GKE Standard GKE Enterprise
$0.1/時間 $0.0083/時間(vCPUあたり)

まとめ

GKE Enterprise の概要と新機能について紹介させていただきました。
Google Cloud Next'23 のセッションで発表を聞いた時は Anthos との違いが分からず混乱していましたが、Anthos の後継と捉えることで理解が深まりました。
また、新機能として追加された機能はシンプルで扱いやすい印象でこれからのアップデートにも期待したいところです。

今後のアップデートを継続的にウォッチして改めて記事公開したいと思います。記事を閲覧いただきありがとうございました。

Discussion