使用 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 定義 | 計量控制器會讀取連線叢集的基本資訊,以提供帳單服務。 這個控制器需要下列權限:
只要專案中仍有已註冊的會員方案,就無法停用計量功能。 |
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