使用連線的項目

主題上次修改日期:2024 年 6 月 18 日

使用 Connect 註冊 Kubernetes 叢集時,系統會在叢集和 Google Cloud控制層之間建立經過驗證及加密的長期連線。 Google Cloud 連線會在Google Cloud 控制台中顯示叢集相關資訊,並讓您使用 GKE Enterprise 元件和功能 (例如 Config Management),管理及部署叢集的設定和資源。

本主題說明 Google Cloud 和 Connect 之間的連線性質,並詳細介紹透過 Connect 在叢集上運作的 Google Cloud端控制器。

關於 Google Cloud 與 Connect 的連結

如「安全性功能」主題所述,只有 Google Cloud 控制層會透過 Connect 向每個已連線的叢集提出要求 (例如向叢集的 API 伺服器提出要求),而叢集會將回應傳回控制層。(叢集服務和資源無法透過 Connect 向控制層發出要求)。授權使用者和 Google 端自動化程序可透過連線存取叢集並進行驗證。

舉例來說,Connect 可讓 Google Cloud 控制台取得有關工作負載和服務的資訊,或允許 Config Management 安裝/更新 Connect 叢集內代理程式,並觀察同步狀態。此外,計量代理程式也能透過 Connect 觀察已連線叢集中的 vCPU 數量。

Connect 不會提供容器映像檔的資料傳輸、負載平衡、資料庫連線、記錄或監控功能。您必須透過自己的機制,為這些使用者建立平行連線。

Google Cloud 透過 Connect 存取叢集的控制台使用者

貴機構使用者透過 Google Cloud 控制台登入叢集後,會獲得特定叢集權限,這些權限取決於指派給他們的角色型存取權控管 (RBAC)。叢集 (而非 Connect) 會強制執行權限。標準 Kubernetes 記錄可供稽核每位使用者在管理叢集時執行的動作。

下表顯示使用者可透過 Connect 與叢集互動的 Google Cloud 主控台部分。

Google Cloud 控制台部分 使用者可執行的動作
Kubernetes Engine 管理已註冊機群的叢集和工作負載,以及管理 GKE Enterprise 元件。
Knative serving 建構、部署及管理服務和應用程式。
Marketplace 部署及管理第三方應用程式。

透過 Connect 從Google Cloud端控制器存取叢集

Google Cloud端控制器會使用 Connect 代理程式,從 Google Cloud 控制層存取叢集。這些控制器可管理及自動化叢集上啟用的功能。舉例來說,Config Management 有一個Google Cloud端控制器,可協助導向叢集內代理程式的生命週期,並提供 UI 來設定及查看在多個叢集執行的 Config Management 狀態。

不同的控制器會使用不同的身分存取叢集,您可以在 Kubernetes 稽核記錄中稽核每個控制器的活動。

下表摘要說明 Google Cloud端控制器如何透過 Connect 運作。表格會醒目顯示控制器的重要詳細資料,包括所需權限、Kubernetes 稽核記錄中的 ID,以及是否可以停用控制器。

在此情況下停用元件,表示完全關閉元件,元件的任何部分都無法在叢集中使用。

元件名稱 可以停用嗎? 叢集角色 / RBAC 權限 說明 叢集稽核記錄中的 ID
Feature Authorizer 否 (預設為啟用) cluster-admin

Feature Authorizer 會為在 Kubernetes 叢集上運作的啟用車隊的元件或功能新增 RBAC,確保每個元件或功能都只具備執行功能所需的特定權限。

只要專案中仍有已註冊的會員資格,就無法停用功能授權者。

詳情請參閱「 車隊中的功能授權」。

service-project-number@gcp-sa-gkehub.iam.gserviceaccount.com
Config Management 支援 (預設為停用) cluster-admin

Config Management 控制器會管理自己的叢內代理程式,並提供 UI,顯示機群中所有叢集的 Config Management 狀態。

控制器會安裝叢內元件,並建立具有適當權限的本機服務帳戶,代表使用者部署所有類型的 Kubernetes 設定。如果未安裝或管理叢集內元件,Config Management 控制器會從叢集內代理程式讀取狀態資訊。

service-project-number@gcp-sa-acm.iam.gserviceaccount.com
用量計算 否 (預設為啟用) 請參閱 RBAC 定義

計量控制器會讀取連線叢集的基本資訊,以提供帳單服務。

這個控制器需要下列權限:

  • 根據節點 vCPU 容量計費。
  • 觀看及刪除metering.gke.io/usagerecords自訂資源。
  • 建立及更新自訂資源。anthos.gke.io/entitlements

只要專案中仍有已註冊的會員方案,就無法停用計量功能。

service-project-number@gcp-sa-mcmetering.iam.gserviceaccount.com

透過 Connect 運作的特定元件適用的 RBAC

下列 API 定義顯示透過 Connect 運作的不同元件資源的存取控制權限。

透過 Connect 進行用量計算的 RBAC

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    hub.gke.io/owner-feature: metering
    hub.gke.io/project: [PROJECT_ID]
  name: metering
  selfLink: /apis/rbac.authorization.k8s.io/v1/clusterroles/metering
rules:
- apiGroups:
  - ""
  resources:
  - nodes
  verbs:
  - get
  - watch
  - list
- apiGroups:
  - metering.gke.io
  resources:
  - usagerecords
  verbs:
  - get
  - list
  - watch
  - delete
- apiGroups:
  - anthos.gke.io
  resources:
  - entitlements
  verbs:
  - create
  - delete
  - get
  - list
  - update
  - watch
- apiGroups:
  - apiextensions.k8s.io
  resources:
  - customresourcedefinitions
  verbs:
  - create
  - list
  - watch
- apiGroups:
  - apiextensions.k8s.io
  resourceNames:
  - entitlements.anthos.gke.io
  resources:
  - customresourcedefinitions
  verbs:
  - get