平台管理員的常見工作之一,是確保應用程式和服務團隊擁有執行工作負載所需的基礎架構資源。視貴機構而定,團隊可能需要使用特定叢集,或在機群中的每個叢集執行工作負載,並為每個團隊設定適當的存取權控管。透過機群團隊管理功能,管理員可以更輕鬆地為團隊佈建及管理這類基礎架構資源,讓每個團隊在機群中做為個別「租戶」。團隊可以執行及管理工作負載,並查看記錄檔、資源使用率、錯誤率和其他指標,所有項目都限定於團隊專屬的叢集和命名空間。
如果您是平台管理員或應用程式團隊成員,想瞭解機群團隊管理功能,歡迎參閱這個頁面。機群團隊管理功能僅適用於已啟用整個 GKE Enterprise 平台的使用者。
機群團隊管理作業簡介
機群團隊管理功能以兩個重要概念為基礎,可為管理員提供「團隊層級」的抽象概念,方便管理機群:
- 團隊範圍可讓您針對個別團隊定義一組機群資源,並將各個範圍連結至一或多個機群成員叢集。團隊範圍可包含 Google Cloud 或外部 Google Cloud的叢集,不過所有叢集均須歸屬於同一個機群。叢集可以與多個團隊範圍建立關聯,讓不同團隊在相同的叢集內執行工作負載。
- 機群命名空間可讓您控管哪些使用者有權存取機群中的特定命名空間。根據預設,系統會將機群中叢集上定義的任何同名命名空間視為同一個命名空間。不過,機群團隊管理功能可讓您更精細地控管命名空間。您可以在特定團隊範圍內建立機群命名空間,然後只允許團隊範圍內的叢集存取這些命名空間。在團隊範圍內的成員叢集上,使用 Fleet 命名空間的方式與使用其他 Kubernetes 命名空間相同。平台管理員可以自行建立車隊命名空間,也可以透過一些額外權限,將命名空間建立作業委派給團隊管理員。
團隊管理範例
舉例來說,假設您是 Cymbal Group 的平台管理員,要為單一機群上的兩個團隊設定資源。
- 後端團隊由一個 Google 群組
backend-team@cymbalgroup.com
組成。您決定這個團隊可以使用命名空間backend
,在叢集 1 和叢集 2 上執行工作負載。您建立的團隊範圍包含這兩個叢集,並在該範圍內定義backend
機群命名空間。 - 前端團隊由兩個 Google 群組組成:
frontend-admin@cymbalgroup.com
和frontend-dev@cymbalgroup.com
。您決定前端團隊可以使用命名空間frontend-foo
和frontend-bar
,在叢集 2 和叢集 3 上執行工作負載。再次使用這兩個叢集建立團隊範圍,並在該範圍內定義兩個機群命名空間。
如圖所示,設定團隊後,兩個團隊都可以使用叢集 2,但每個團隊會使用自己的命名空間。此外,後端團隊可以在叢集 1 上使用自己的命名空間,前端團隊則可以在叢集 3 上使用自己的命名空間。兩個團隊都可以在叢集上執行工作負載,並查看自己的資源,不必考慮其他團隊。
在上述兩種情況中,您都指定團隊領導人 (後端團隊的個別使用者 Dana,以及前端團隊的frontend-admin
群組成員) 具有團隊範圍的admin
存取權,也就是說,他們可以在範圍內建立角色和角色繫結,而其餘團隊成員則具有editor
存取權。
雖然您可以使用 kubectl
或其他工具手動設定所有這些設定,但使用團隊管理功能可讓團隊更輕鬆快速地加入,並讓管理員和團隊成員根據團隊範圍使用其他功能,例如團隊範圍指標。
在實際情況中,您可能也會為實際工作環境、開發環境和測試環境分別建立車隊。您可以在每個機群中為前端和後端團隊建立團隊範圍,為團隊提供專屬的正式版、開發和測試叢集。如要進一步瞭解這項功能,請參閱機群最佳做法和範例。
團隊可用的功能
設定團隊範圍後,應用程式營運人員和管理員就能查看團隊範圍內的資訊,例如資源使用率、記錄、命名空間的錯誤,以及範圍內的其他指標,方便評估資源總用量、排解問題等。如要進一步瞭解這些功能,請參閱「使用團隊總覽」。團隊範圍也可用於依序推出升級。
存取團隊範圍
建議團隊成員使用 Connect Gateway 的特殊叢集憑證,透過 kubectl
存取團隊範圍叢集。Connect Gateway 是一項安全穩定的服務,可讓使用者透過 Google ID 登入機群中的任何叢集,包括使用 Google 群組進行授權。雖然並非必要,但使用閘道憑證可簡化機群成員叢集的驗證程序,即使跨專案也適用。 Google Cloud車隊團隊管理目前不支援第三方身分識別提供者。
現有資源
您也可以使用機群團隊管理功能「導入」貴機構團隊使用的現有命名空間和叢集,讓管理員和團隊開始使用團隊功能,處理現有工作負載。如果您建立機群命名空間,且與團隊範圍相關聯的其中一個叢集上,已有同名的 Kubernetes 命名空間,系統會將該命名空間視為機群命名空間的例項,因此屬於團隊範圍。