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

Connect の IAM ロール

Identity and Access Management(IAM)によって、ユーザー、グループ、サービス アカウントは Google Cloud API にアクセスし、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.*
  • gkehub.membershipfeatures.list
  • gkehub.membershipfeatures.get
  • gkehub.membershipfeatures.create
  • gkehub.membershipfeatures.update
  • gkehub.membershipfeatures.delete
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
  • gkehub.membershipfeatures.list
  • gkehub.membershipfeatures.get
roles/gkehub.connect GKE Connect エージェント 外部クラスタと Google の間に新しい接続を確立する機能を提供します。 gkehub.endpoints.connect

リソースの使用率と要件

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