Connect Agent の概要

Google Cloud の外部のクラスタをフリートに登録すると、Google Cloud は Connect Agent と呼ばれる Deployment を使用してクラスタと Google Cloud プロジェクト間の接続を確立し、Kubernetes リクエストを処理します。Google Cloud で実行されている GKE クラスタの接続を確立するのに Connect Agent は必要ありません。

これにより、クラスタと、統合されたユーザー インターフェースである Google Cloud コンソールをはじめとする Google Cloud のワークロード管理機能にアクセスして、クラスタを操作できます。

ネットワークが送信リクエストを許可するように構成されている場合、NAT、下りプロキシ、ファイアウォールを通過するように Connect Agent を構成して、クラスタの Kubernetes API サーバーと Google Cloud プロジェクト間に長期にわたる暗号化接続を確立できます。この接続を有効にすると、独自の認証情報を使用してクラスタに再度ログインし、Kubernetes リソースの詳細情報にアクセスできるようになります。これにより、通常は GKE クラスタでのみ使用可能な UI エクスペリエンスを効果的に複製できます。

接続が確立されると、Connect Agent ソフトウェアは、アカウントの認証情報、技術的な詳細、接続されたインフラストラクチャに関するメタデータ、それらを Google Cloud で管理するのに必要なワークロードを、リソース、アプリケーション、ハードウェアの詳細を含めて交換できます。

このクラスタ サービスのデータは、Google Cloud プロジェクトとアカウントに関連付けられています。Google では、このデータを使用してクラスタと Google Cloud の間のコントロール プレーンを維持し、利用促進に関するサポート、課金、更新版の提供など、リクエストをいただいた Google Cloud のサービスと機能を提供しているほか、Connect を通じてご利用いただける Connect および Google Cloud サービスの信頼性、品質、容量、機能の測定と改善を行っています。

ユーザーの Kubernetes API サーバーが、GKE Connect を通してすべてのリクエストの認証承認監査ロギングを行うことで、GKE Connect を通してどのようなデータが送信されるか常に管理されます。Google とユーザーは、クラスタ管理者から承認された後(たとえば RBAC 経由)、GKE Connect 経由でデータまたは API にアクセスできます。クラスタ管理者はその承認を取り消すことができます。

IAM ロールの接続

Identity and Access Management(IAM)によって、ユーザー、グループ、サービス アカウントは Google Cloud APIs にアクセスし、Google Cloud サービス内でタスクを実行できます。

Connect Agent を起動し Google Cloud コンソールまたは Google Cloud CLI を使用してクラスタを操作するには、特定の IAM ロールを指定する必要があります。これらのロールは、接続されたクラスタに直接アクセスすることを許可しません。Google Cloud コンソールからクラスタにログインする方法について詳しくは、Google Cloud コンソールからのクラスタの操作をご覧ください。

このような役割のいくつかを使用すると、以下を含めて、クラスタに関する情報にアクセスできます。

  • クラスタ名
  • 公開鍵
  • IP アドレス
  • ID プロバイダ
  • Kubernetes バージョン
  • クラスタサイズ
  • その他のクラスタ メタデータ

Connect は、次の IAM ロールを使用します。

ロール名 ロールのタイトル 説明 権限
roles/gkehub.editor ハブ編集者 GKE Hub リソースに対する編集アクセス権を付与します。

Google Cloud の権限

  • resourcemanager.projects.get
  • resourcemanager.projects.list

ハブの権限

  • gkehub.memberships.list
  • gkehub.memberships.get
  • gkehub.memberships.create
  • gkehub.memberships.update
  • gkehub.memberships.delete
  • gkehub.memberships.generateConnectManifest
  • gkehub.memberships.getIamPolicy
  • gkehub.locations.list
  • gkehub.locations.get
  • gkehub.operations.list
  • gkehub.operations.get
  • gkehub.operations.cancel
  • gkehub.features.list
  • gkehub.features.get
  • gkehub.features.create
  • gkehub.features.update
  • gkehub.features.delete
  • gkehub.features.getIamPolicy
  • gkehub.fleet.*
roles/gkehub.viewer ハブ閲覧者 ハブと関連リソースに対する読み取り専用アクセス権を付与します。

Google Cloud の権限

  • resourcemanager.projects.get
  • resourcemanager.projects.list

ハブの権限

  • gkehub.memberships.list
  • gkehub.memberships.get
  • gkehub.memberships.generateConnectManifest
  • gkehub.memberships.getIamPolicy
  • gkehub.locations.list
  • gkehub.locations.get
  • gkehub.operations.list
  • gkehub.operations.get
  • gkehub.features.list
  • gkehub.features.get
  • gkehub.features.getIamPolicy
roles/gkehub.connect GKE Connect Agent 外部クラスタと Google の間に新しい接続を確立する機能を提供します。 gkehub.endpoints.connect

リソースの使用率と要件

通常、登録時にインストールされた Connect エージェントは、500m の CPU と 200Mi のメモリを使用します。ただし、この使用量は、そのエージェントに対する 1 秒間のリクエストの数と、そのリクエストのサイズによって異なることがあります。この使用量は、クラスタのサイズ、Google Cloud コンソール経由でクラスタにアクセスするユーザー数(超過したユーザーやワークロード、超過したリクエスト)、クラスタのフリート対応機能の数など、多くの要因から影響を受ける可能性があります。