Connect Agent の概要

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

これにより、クラスタと、統合されたユーザー インターフェースである 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 サーバーが、Connect を通してすべてのリクエストの認証認可監査ロギングを行うことで、Connect を通して送信されるデータの内容を継続的に管理できます。Google とユーザーは、クラスタ管理者から(たとえば RBAC 経由で)認可された後、データまたは API にアクセスできます。クラスタ管理者はこの認可を取り消すことができます。

Connect の 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 エージェント 外部クラスタと Google の間に新しい接続を確立する機能を提供します。 gkehub.endpoints.connect

リソースの使用率と要件

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