DX開発事業部の田村です。
Google Cloud Next Tokyo ’24より、1日目に拝聴したセッションの様子をご紹介いたします。

セッション情報

セッションタイトル:Google Kubernetes Engine と Cloud Run 最新アップデートと使い所を徹底解説
スピーカー:Google Cloud 内間 和季 様

本セッションでは、Google Cloud の主要なコンテナ実行環境である Google Kubernetes Engine (GKE) と Cloud Run の最新機能アップデートと新機能の使い所について紹介します。

はじめに

このセッションでは前半にGoogle Kubernetes Engine(以降GKE)、後半にCloud Runのアップデート情報が紹介されました。この記事ではGKEのアップデート情報についてまとめていこうと思います。

まずGKEとは


GKEはコンテナオーケストレーションのオープンソースであるKubernetesをより簡単かつ安全に使うための機能を提供するマネージドサービスです。
コントロールプレーンと呼ばれる領域についてはGoogle Cloudが管理しており、ユーザはクラスタのモード種類としてStandardモードとAutopilotモードを使い分けて運用していくものとなります。

  • Standard: マネージド度合いは下がるが設定の柔軟性を兼ね備えている
  • Autopilot: コントロールプレーンだけでなくノードまでGoogleがマネージドとして提供

GKEの最新アップデート

Workload Identity Federation for GKE

GKE環境でGoogle Cloud APIへのアクセス制御を行う際はこれまで、Workload Identityを使いKubernetesのサービスアカウントとGoogle Cloudのサービスアカウントを紐づけて権限を渡すことでアクセス制御が可能となっておりました。

今回のアップデートより、Kubernetesのサービスアカウントに直接IAMロールの付与が可能となりました!

これによってGKEでアクセス制御を行う際にGoogle Cloud サービスアカウントの作成や紐付けが不要となり、セキュリティや管理方面で運用が楽になったうえ、より直感的にアクセス制御が行えるようになっています。

Burstable Pod & 最小値の引き下げ

従来のAutopilotのリソース管理ではマニュフェスト内において、RequestとLimitの値が同値の場合のみサポートされており、また250m単位でのリソースの調整やリソースの最小値がCPU:250m、Memory:512MiBという制約がありました。

今回のアップデートではリソースの設定を1m単位で行えるようになり、リソース最小値もCPU:50m、Memory:52MiBとかなり幅が広がり設定の柔軟性が強調されています。

またBurstable PodをサポートするためRequest値以上のリソースを使用することが可能となり、リソース集約やコスト低減という観点でより使いやすくなっているようです。

Stateful HA Operator

今回のアップデートからStateful HA Operatorの機能がGAされました。

これはリージョンのPersistent Diskを利用してマルチゾーンの高可用性StatefulSetを管理していくというもので、Nodeで障害が発生した場合に一定期間経過したPodを自動的に削除してフェイルオーバーさせることができます。

通常のGKEの仕組みでノードに問題がありノードが停止してしまった場合は、Podが別のノードに移るまでに8分くらいかかることがあり、これだと要件的にそぐわないときにマルチレプリカを構成する場合があります。

今回GAされた機能では閾値を超えると強制的にPod削除して他のノードでPod立ち上げるなどができ、マルチレプリカの構成よりも安く済ませることが可能です。またゾーン跨ぎの構成もサポートされているようです。

Secret Manager アドオン


Public Previewとして公開されたシークレット管理の機能がこちらのSecret Manager アドオンとなります。
Secret Manager上で機密情報を管理し、これをボリュームとしてマウントする形で利用することができるようになります。

クラスタ上でシークレットを運用管理していた場合もあり、そういったケースにおいてはシークレットとしてオフロードすることができる点はこの機能の強みとなります。

またマウントして参照することになるため、カスタムコードを参照する必要がなくこれまでと使用感があまり変わらないままにシークレットをセキュアに運用していくことができます。
なおSecret Managerにアクセスする際はWorkload Identityを使う形となります。

GCS FUSE Read Cache


これまでは同じファイルをコンテナから参照する際、都度GCSのAPIを叩いていたためコストやレイテンシの観点で良いとは言えませでした。

GCS FUSE Read Cacheがサポートされることで、一度GCSからダウンロードしたデータのキャッシュをPersistent Diskやメモリなどに保存して、同じデータへの繰り返しのアクセスにかかるオーバーヘッドを削減することが可能となります。
なおどこにキャッシュするかはユーザ側でチューニングが可能のようです。

Container Image Preloading

コンテナに必要なライブラリをセカンダリディスクとしておいておくことで、コンテナイメージ自体のサイズを小さくしつつ、AI/MLワークロードのようなサイズの大きいコンテナの立ち上げを高速化することが可能になります。

Cluster-wide Network Policy

クラスタ全体に対するガードレールを適用する機能がGAされました。これにより、クラスター管理者が一元的にNetwork Policyを設定し適用することが容易になるようです。注意点としてDataplane V2が有効になったクラスタでCluster スコープの設定が可能となります。

GKE Enterpriseについて

GKEのエディションとしてGKE Enterpriseについても触れておりました。コントロールプレーンからフリート管理、そしてガバナンスやセキュリティ対策など、エンタープライズ対応のプラットフォームとして、「より早く」「より低リスクで」「より低コストで」という点をご説明されていました。

GKE Threat Detection


新たにPublic Previewとして脅威検出のためのGKE Threat Detectionという機能が発表されました。不審な捜査の検出やもちろん、侵入された後の動きを検出し、脅威に対する対応をアクティブに行なっていくことが可能となります。
SCC(Security Command Center)の機能でしたがGKE エンタープライズで利用できるようになったとのことです。

GKE Compliance


こちらはGKEクラスタに関して、ベンチマークの結果やセキュリティスタンダードの遵守状況をダッシュボードを通して確認することができます。クラスタごとにどの項目がダメなのかをチェックしてくれるようです。

Cloud Service Mesh


Anthos Service MeshとTraffic Directorが1つのプロダクトに統合され、横断的な管理や制御を行っていくことが容易になるようです。GKEがメインでしたが将来的にはCloud Runもサービスメッシュの中に入れられるようになるとのことです。

GKE 延長サポート


こちらは特定のマイナーバージョンに対して最大24ヶ月のサポートを行うというものです。GKEエンタープライズの料金に含まれているのでこちらのエディションの場合は気にしなくて良いそうです。後から延長サポートに入ることもでき、アップグレードが終わったから戻すということも可能です。

さいごに

いかがだったでしょうか。このセッションではGKEに関するアップデート情報がなんと12個も発表されていました。
普段からGKEを触っているわけではありませんが、セッションを通して新鮮なアップデート情報をインプットすると、GKEをいろいろ触ってみたい欲が駆り立てられますね。
よりエンタープライズ活用を意識したセキュアでより使いやすいアップデートがなされているので、今後の選択肢して今回のアップデートもしっかりキャッチアップして活用してきたいと思います。