本文適用於平台管理員,說明如何為團隊設定及管理機群使用情形。機群團隊管理功能僅適用於已啟用 GKE Enterprise 的使用者。
閱讀本頁面之前,請先熟悉機群團隊管理。
團隊設定總覽
您可以使用 Google Cloud CLI、 Google Cloud 控制台或 Terraform 設定團隊。
設定團隊的一般程序如下:
- 選取或建立要設定團隊存取權的車隊,並確認您具備完成設定的適當權限和 API。
- (選用,但建議使用) 為機群叢集設定 Google 群組的存取權控管。
- 決定團隊成員。團隊可以包含 Google 群組 (建議) 和/或個別帳戶。
- 為每位團隊成員選擇機群和團隊資源的存取層級。
- 為團隊建立團隊範圍。
- 將一或多個 (或所有) 機群成員叢集新增至團隊範圍。
- 定義機群層級的命名空間,並與團隊範圍建立關聯。
- (選用) 使用 Config Sync 將 Kubernetes 資源同步至團隊範圍和命名空間。
團隊隨後即可取得憑證,透過 Connect Gateway 存取叢集。
設定 Google Cloud CLI
即使使用 Google Cloud 控制台建立團隊範圍,您可能仍需設定 gcloud CLI,才能在設定機群時完成部分必要條件,例如啟用必要 API。
請確認您已安裝最新版 Google Cloud CLI,包括 Google Cloud CLI Alpha 版元件。如要使用機群團隊管理指令,至少需要 419.0.0 版。
執行下列指令,登入 Google Cloud:
gcloud auth login
初始化 gcloud CLI,以便搭配所選車隊的主專案使用,或執行下列指令,將車隊主專案設為預設專案:
gcloud config set project PROJECT_ID
如有需要,您可以在下列任一指令中使用
--project
旗標,指定其他車隊主機專案。
設定車隊
選取或建立要設定新團隊的車隊。如需機群結構的相關指南和範例,請參閱「機群範例」和「規劃機群」中的其他指南。
如要在沒有具名車隊的專案中建立新的車隊,請執行下列指令 (您需要先設定 Google Cloud CLI):
gcloud container fleet create \
--display-name=NAME \
--project=FLEET_HOST_PROJECT_ID
如未指定 display-name
,系統會根據機群主機專案名稱,為新機群建立預設顯示名稱。
必要 IAM 角色
如果車隊主機專案沒有 roles/owner
,您需要 roles/gkehub.admin
才能建立及設定團隊範圍和命名空間。專案擁有者可以使用下列指令授予這個角色:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member user:USER_EMAIL_ADDRESS \
--role='roles/gkehub.admin'
啟用 API
確認車隊主專案已啟用所有必要 API,包括 GKE Enterprise API:
gcloud services enable --project=PROJECT_ID \
gkehub.googleapis.com \
container.googleapis.com \
connectgateway.googleapis.com \
cloudresourcemanager.googleapis.com \
iam.googleapis.com \
anthos.googleapis.com
如果設定機群團隊管理功能後停用 GKE Enterprise API,這項功能的部分層面仍可運作,但您將無法更新或建立團隊範圍或機群命名空間。
將叢集設為使用 Google 群組控管存取權
雖然您可以使用 RBAC,在不進行任何額外叢集設定的情況下,逐一為使用者設定團隊對 Fleet 成員叢集的存取權,但我們建議根據團隊成員所屬的團隊 Google 群組,授予他們叢集存取權。根據群組成員資格授權,表示您不必為每個帳戶分別設定授權,因此政策管理和稽核作業會更簡單,而且使用者加入或離開團隊時,也不必手動新增/移除叢集中的個別使用者。請參閱下列指南,確保要指派給團隊範圍的叢集可搭配 Connect Gateway 使用 Google 群組控管存取權:
- 如果是 Google Cloud上的 GKE 叢集,請按照「設定 RBAC 適用的 Google 群組」一文中的操作說明進行設定。
- 如要在外部 Google Cloud設定車隊成員叢集,請按照「使用 Google 群組設定 Connect Gateway」一文中的操作說明進行。
建立新小組
以下說明如何為團隊建立新的團隊範圍。
選擇團隊存取權限
首先,請決定或找出團隊成員。團隊設定的重要環節,是授予團隊成員機群存取權,包括在 Google Cloud 控制台中查看叢集,以及查看團隊範圍內的記錄。視團隊成員的角色而定,您可能也想將在團隊範圍內建立命名空間的權限委派給他們 (適用於 gkehub.ScopeAdmin 或 gkehub.ScopeEditor),或允許他們更新 RBAC 角色繫結 (僅適用於 gkehub.ScopeAdmin)。
為簡化這項設定,車隊團隊管理功能提供三種預先定義的權限角色供您選擇,包括團隊範圍管理員、編輯者或檢視者在處理範圍時可能需要的一整套 IAM 和 Kubernetes RBAC 權限。或者,您也可以在叢集上選取具有自訂 RBAC 權限的自訂角色。接著,您可以在設定團隊時,將這些角色指派給團隊成員,詳情請見下一節。
下表顯示每種權限類型授予各個角色的權限:
說明 | 類型 | 範圍管理員角色 | 範圍編輯者角色 | 範圍檢視者角色 | 自訂角色 |
---|---|---|---|---|---|
存取團隊範圍及其命名空間。 |
團隊範圍的身分與存取權管理繫結 | roles/gkehub.scopeAdmin | roles/gkehub.scopeEditor | roles/gkehub.scopeViewer | roles/gkehub.scopeViewer |
存取機群主專案,包括指標、長時間執行的作業和 Connect 閘道。 |
機群主專案的身分與存取權管理繫結 | roles/gkehub.scopeEditorProjectLevel | roles/gkehub.scopeEditorProjectLevel | roles/gkehub.scopeViewerProjectLevel | roles/gkehub.scopeEditorProjectLevel |
存取團隊範圍的記錄檔值區。 |
機群主專案的 IAM 繫結 (條件是存取的資源為 bucket 名稱)。 | roles/logging.viewAccessor | roles/logging.viewAccessor | roles/logging.viewAccessor | roles/logging.viewAccessor |
存取範圍內叢集的 Kubernetes 資源。 |
套用至團隊範圍命名空間的範圍 RBAC 繫結。 | Kubernetes 預設角色:管理員 | Kubernetes 預設角色:編輯 | Kubernetes 預設角色:檢視 | 使用者定義的 ClusterRole |
如上一節所述,我們建議您根據 Google 群組成員資格授予團隊成員資源存取權,但團隊管理功能也允許您授予個別使用者存取權。
如果這些角色無法完全滿足您的需求,您也可以個別繫結 IAM (使用 gcloud container fleet scopes add-iam-policy-binding
) 和 RBAC (使用 gcloud container fleet scopes rbacrolebindings create
) 角色。如要瞭解更多可用於管理這些繫結的指令,請參閱 Google Cloud CLI 參考說明文件。
設定團隊範圍
gcloud
建立團隊範圍
如要在機群中建立新的團隊範圍,請執行下列指令,其中 SCOPE_NAME 是您為新範圍選用的專屬識別名稱:
gcloud container fleet scopes create SCOPE_NAME
將叢集新增至團隊範圍
只有現有車隊成員可以新增至團隊範圍。這些操作說明假設您要新增至範圍的叢集已是機群成員。如要將叢集新增至機群,請按照「建立機群」中的叢集類型操作說明,註冊叢集。如先前所述,請確保新註冊的叢集已設定為使用 Google 群組控管存取權。
機群成員叢集可新增至機群主專案中的任意數量團隊範圍。
如要將叢集新增至團隊範圍,請執行下列指令:
gcloud container fleet memberships bindings create BINDING_NAME \
--membership MEMBERSHIP_NAME \
--scope SCOPE_NAME \
--location MEMBERSHIP_LOCATION
更改下列內容:
- BINDING_NAME:代表叢集與團隊範圍之間關係的名稱。建議使用 MEMBERSHIP_NAME-SCOPE_NAME。
- MEMBERSHIP_NAME:叢集在車隊中的專屬 ID (通常是叢集名稱)。
- (選用) MEMBERSHIP_LOCATION:叢集的成員資格位置。如果省略這個值,則值為
global
,這是叢集註冊的預設值。
建立機群命名空間
如要在團隊範圍內建立命名空間,請執行下列指令:
gcloud container fleet scopes namespaces create NAMESPACE_NAME --scope=SCOPE_NAME
更改下列內容:
- NAMESPACE_NAME:您為機群中的命名空間選擇的專屬名稱。確認 NAMESPACE_NAME 不會與機群命名空間命名限制衝突。
- SCOPE_NAME:您要使用命名空間的團隊範圍。
這個指令會在團隊範圍內的每個叢集中,建立名為 NAMESPACE_NAME 的 Kubernetes 命名空間。授予團隊成員範圍存取權後,他們就能像使用其他 Kubernetes 命名空間一樣使用 NAMESPACE_NAME。如果您在團隊範圍內已有名為 NAMESPACE_NAME 的 Kubernetes 命名空間,系統會將其視為新艦隊命名空間的一部分。這有時稱為「加入」命名空間。
授予團隊成員團隊範圍的存取權
使用預先定義的角色
接著,請確認相關 Google 群組已設定適當的 IAM 和 RBAC 權限,可與新範圍搭配使用:
gcloud beta container fleet scopes add-app-operator-binding SCOPE_ID
--role=ROLE --group=TEAM_EMAIL --project PROJECT_ID
- PROJECT_ID 是車隊主專案的 ID
- TEAM_EMAIL 是團隊 Google 群組的電子郵件地址。
- SCOPE_ID 是所建立範圍的 ID
- ROLE 是群組在團隊範圍內擁有的權限角色。這個參數的值可以是
admin
(範圍管理員)、edit
(範圍編輯者) 或view
(範圍檢視者)。
如要授予個別使用者範圍存取權,請改為執行下列指令,其中 USER_EMAIL 是使用者的 Google ID 電子郵件地址:
gcloud beta container fleet scopes add-app-operator-binding SCOPE_ID
--role=ROLE --user=USER_EMAIL --project PROJECT_ID
使用自訂角色
如要使用自訂角色,請先將自訂角色新增至 rbacrolebindingactuation
車隊功能:
gcloud container fleet rbacrolebindingactuation update --allowed-custom-roles CUSTOM_ROLE --project PROJECT_ID
接著,請確認相關 Google 群組已設定適當的 IAM 和 RBAC 權限,可與新範圍搭配使用:
gcloud beta container fleet scopes add-app-operator-binding SCOPE_ID
--custom-role=CUSTOM_ROLE --group=TEAM_EMAIL --project PROJECT_ID
更改下列內容:
- PROJECT_ID:機群主機專案的 ID。
- TEAM_EMAIL:團隊 Google 群組的電子郵件地址。
- SCOPE_ID:建立的範圍 ID。
- CUSTOM_ROLE:已新增至
rbacrolebindingactuation
功能允許清單的 Kubernetes ClusterRole。如要讓這項功能正常運作,請務必在新增至範圍的每個叢集上,建立 ClusterRole。不過,即使沒有 ClusterRole,系統仍會建立資源。
如要授予個別使用者範圍存取權,請改為執行下列指令,其中 USER_EMAIL 是使用者的 Google ID 電子郵件地址:
gcloud beta container fleet scopes add-app-operator-binding SCOPE_ID
--custom-role=CUSTOM_ROLE --user=USER_EMAIL --project PROJECT_ID
控制台
建立團隊範圍
選取車隊主專案後,前往 Google Cloud 控制台的「團隊」部分。
按一下頁面頂端的「建立團隊範圍」。
在「團隊基本資料」頁面的「名稱」欄位中,輸入團隊範圍的專屬名稱。團隊範圍建立完成後即無法變更名稱。
如要將團隊成員新增至範圍,請按一下「新增團隊成員」。
- 在「類型」部分,選取「使用者」可新增個別團隊成員,選取「群組」則可新增 Google 群組 (建議)。
- 在「User or Group」(使用者或群組) 專區中,輸入團隊成員或群組的電子郵件地址。
- 在「角色」中,選取「範圍管理員」、「範圍編輯者」或「範圍檢視者」,在範圍和機群上設定多個 IAM 和 RBAC 繫結,詳情請參閱「選擇團隊存取權限」。
如要在這個階段建立團隊範圍,但不新增叢集和命名空間,請按一下「建立團隊範圍」。否則,請繼續下一個章節,將叢集新增至範圍。
將叢集新增至團隊範圍
如要將叢集與團隊範圍建立關聯,叢集必須是現有機群成員。如要將叢集新增至機群,請按照「建立機群」中的叢集類型操作說明,註冊叢集。如先前所述,請確保新註冊的叢集已設定為使用 Google 群組控管存取權。
機群成員叢集可新增至機群主機專案中的任意數量團隊範圍,讓不同團隊在相同的叢集上執行工作負載。
- 在「團隊基本資料」頁面中,將團隊成員新增至範圍後,按一下「繼續」。
- 在「叢集」頁面中,您可以選取要與這個團隊範圍建立關聯的機群叢集。在「叢集」下拉式選單中,勾選要新增的叢集,然後按一下「確定」。
建立機群命名空間
團隊成員可以使用艦隊命名空間,方式與使用其他 Kubernetes 命名空間相同。建立機群命名空間時,系統會在團隊範圍內的所有叢集建立對應的 Kubernetes 命名空間 (如果尚未建立)。
- 在「叢集」頁面中,將叢集新增至團隊範圍後,按一下「繼續」。
- 在「命名空間」頁面中,按一下「新增命名空間」。
- 在「名稱」中,輸入機群中命名空間的專屬名稱,或要加入的現有命名空間名稱。確認名稱不會與機群命名空間命名限制衝突。
- 如要將更多機群命名空間新增至範圍,請重複上述步驟。
- 如要建立團隊範圍,請按一下「建立團隊範圍」。團隊範圍建立完成後,按一下「團隊」部分中的團隊範圍名稱,即可查看及編輯團隊範圍。
Terraform
本節說明如何使用 Terraform 設定新團隊。如需更多資訊和其他範例,請參閱下列資源的參考說明文件:
google_gke_hub_scope
google_gke_hub_membership_binding
google_gke_hub_namespace
google_gke_hub_scope_rbac_role_binding
google_gke_hub_feature_rbacrolebindingactuation
建立團隊範圍
如要建立團隊範圍,可以在 Terraform 設定中使用下列程式碼區塊。
resource "google_gke_hub_scope" "TF_SCOPE_RESOURCE_NAME" {
scope_id = "SCOPE_NAME"
}
更改下列內容:
- TF_SCOPE_RESOURCE_NAME:您選擇的名稱,用於唯一識別這個區塊建立的 Terraform
google_gke_hub_scope
資源。 - SCOPE_NAME:團隊範圍的專屬識別名稱。
將叢集新增至範圍
只有現有車隊成員可以新增至團隊範圍。如要將叢集新增至機群,請按照「建立機群」中的叢集類型操作說明註冊叢集。如先前所述,請確保新註冊的叢集已設定為使用 Google 群組控管存取權。
如要將叢集新增至團隊範圍,請在設定中使用下列區塊:
resource "google_gke_hub_membership_binding" "TF_MEMBERSHIP_BINDING_RESOURCE_NAME" {
membership_binding_id = "BINDING_NAME"
scope = SCOPE_NAME
membership_id = MEMBERSHIP_NAME
location = "MEMBERSHIP_LOCATION"
}
更改下列內容:
- TF_MEMBERSHIP_BINDING_RESOURCE_NAME:用於識別這個區塊所建立
google_gke_hub_membership_binding
資源的名稱。 - BINDING_NAME:代表叢集和範圍之間關係的名稱。建議使用 MEMBERSHIP_NAME-SCOPE_NAME。
- SCOPE_NAME:團隊範圍的名稱。
- MEMBERSHIP_NAME:叢集在車隊中的專屬 ID (通常是叢集名稱)。
- MEMBERSHIP_LOCATION:叢集的成員位置。
建立機群命名空間
團隊成員可以像使用其他 Kubernetes 命名空間一樣,使用叢集組命名空間。您可以建立新的命名空間,或是加入現有命名空間。建立機群命名空間時,系統會在團隊範圍內的所有叢集建立對應的 Kubernetes 命名空間 (如果該命名空間尚不存在)。
如要建立 Fleet 命名空間,請在設定中使用下列程式碼區塊:
resource "google_gke_hub_namespace" "TF_NAMESPACE_RESOURCE_NAME" {
scope_namespace_id = "NAMESPACE_NAME"
scope_id = SCOPE_NAME
scope = SCOPE_NAME
}
更改下列內容:
- TF_NAMESPACE_RESOURCE_NAME:用於識別這個區塊所建立
google_gke_hub_namespace
資源的名稱。 - NAMESPACE_NAME:您為車隊命名空間選擇的專屬名稱。請確認這個名稱不會與車隊命名空間命名限制衝突。
- SCOPE_NAME:要在其中建立 Fleet 命名空間的團隊範圍名稱。
授予範圍存取權
使用預先定義的角色
如上一節所述,團隊成員可使用包含 IAM 和 RBAC 權限的權限角色,取得範圍的存取權。舉例來說,以下是授予個別使用者團隊範圍存取權的設定:
module "TF_SCOPE_RESOURCE_NAME_USER_EMAIL" {
source = "terraform-google-modules/kubernetes-engine/google//modules/fleet-app-operator-binding"
scope_id = "SCOPE_NAME"
user = "USER_EMAIL"
role = "ROLE"
}
更改下列內容:
- TF_SCOPE_RESOURCE_NAME:範圍名稱。
- BINDING_NAME:代表這個繫結的名稱。
- SCOPE_NAME:團隊範圍的名稱。
- USER_EMAIL:使用者的電子郵件地址。
- ROLE:要授予使用者的角色,可以是
ADMIN
、EDIT
或VIEW
。
如要授予 Google 群組團隊範圍的存取權,請在上述設定中使用 group
,而非 user
,並使用團隊 Google 群組的電子郵件地址。
使用自訂角色
如要使用自訂角色,請先將自訂角色新增至 rbacrolebindingactuation
車隊功能:
resource "google_gke_hub_feature" "rbacrolebindingactuation" {
name = "rbacrolebindingactuation"
location = "global"
spec {
rbacrolebindingactuation {
allowed_custom_roles = ["CUSTOM_ROLE"]
}
}
}
下列設定會授予個別使用者團隊範圍的 RBAC 存取權:
resource "google_gke_hub_scope_rbac_role_binding" "BINDING_NAME" {
scope_id = "SCOPE_NAME"
user = "USER_EMAIL"
role {
custom_role = "CUSTOM_ROLE"
}
depends_on = [google_gke_hub_feature.rbacrolebindingactuation]
}
更改下列內容:
- BINDING_NAME:代表這個繫結的名稱。
- SCOPE_NAME:團隊範圍的名稱。
- USER_EMAIL:使用者的電子郵件地址。
- CUSTOM_ROLE:已在
rbacrolebindingactuation
功能的允許清單中新增的 Kubernetes ClusterRole。如要讓這項功能正常運作,請務必在新增至範圍的每個叢集上,建立 ClusterRole。不過,即使沒有 ClusterRole,系統仍會建立資源。
您需要額外的專案層級和範圍層級 IAM 權限,可以按照運算子繫結 Terraform 範例新增。
存取機群命名空間
設定完成後,團隊成員就能取得相關叢集憑證,存取範圍內的命名空間。如要使用 Connect Gateway 取得車隊成員叢集的憑證,請執行下列指令,其中 MEMBERSHIP_NAME 是叢集的車隊成員名稱:
gcloud container fleet memberships get-credentials MEMBERSHIP_NAME
詳情請參閱「使用 Connect Gateway」。
管理團隊範圍
使用下列指令管理團隊範圍。
gcloud
列出團隊範圍
如要列出車隊中的所有範圍,請執行下列指令:
gcloud container fleet scopes list
如要列出與叢集相關聯的所有範圍,請執行下列指令:
gcloud container fleet memberships bindings list --membership MEMBERSHIP_NAME
從團隊範圍中移除叢集
如要從範圍中移除叢集,請執行下列指令:
gcloud container fleet memberships bindings delete BINDING_NAME --membership MEMBERSHIP_NAME
刪除團隊範圍
如要從機群中刪除範圍,請執行下列指令:
gcloud container fleet scopes delete SCOPE_NAME
控制台
列出團隊範圍
如要查看車隊中的所有範圍,請選取車隊主機專案,然後前往 Google Cloud 控制台的「Teams」(團隊) 部分。
「團隊」頁面會列出為車隊建立的所有團隊範圍。您可以查看每個範圍在指定時間範圍內的資源用量摘要,以及預估每月費用、錯誤數和容器重新啟動次數。
按一下「成本最佳化」,即可查看更詳細的費用相關使用率指標。
查看團隊範圍詳細資料
您可以查看每個團隊範圍的詳細資料,包括與該範圍相關聯的標籤、團隊成員和團隊範圍記錄。
- 在「團隊」頁面上,按一下要查看詳細資料的團隊範圍。
- 在「團隊」分頁中,您可以查看範圍標籤 (如有) 和團隊成員。
- 按一下「監控」分頁標籤,即可查看團隊的資源使用率指標。
- 按一下「叢集」分頁標籤,即可查看團隊範圍的叢集。
- 按一下「命名空間」分頁,即可查看這個團隊範圍中的機群命名空間。
- 按一下「記錄」分頁標籤,即可查看團隊範圍記錄。
在團隊範圍中新增或刪除叢集
如要在現有團隊範圍中新增或刪除叢集,請按照下列步驟操作:
前往 Google Cloud 控制台的「Teams」(團隊) 頁面:
選取要新增或刪除叢集的團隊範圍。「叢集」分頁會顯示目前繫結至範圍的叢集清單。
如要將叢集新增至團隊範圍,請按照下列步驟操作:
- 按一下頁面頂端的「新增叢集」。
- 在「叢集」下拉式選單中,選取要新增至範圍的叢集,然後按一下「確定」。
- 按一下「更新團隊範圍」。
如要從團隊範圍中刪除叢集,請按照下列步驟操作:
- 選取「叢集」分頁,即可查看目前繫結至範圍的叢集清單。
- 找出要刪除的叢集,然後按一下旁邊的「垃圾桶」圖示,再按一下「移除」確認刪除。
刪除範圍
前往 Google Cloud 控制台的「Teams」(團隊) 頁面:
選取要刪除的團隊範圍。
如要刪除範圍,請按一下頁面頂端的「刪除」。
輸入範圍名稱,然後再次點按「刪除」,確認刪除。
管理機群命名空間
gcloud
使用下列指令管理團隊範圍內的命名空間。
列出機群命名空間
如要列出範圍內使用 fleet scopes namespaces create
建立的所有命名空間,請執行下列指令:
gcloud container fleet scopes namespaces list --scope=SCOPE_NAME
刪除機群命名空間
如要刪除車隊命名空間,請執行下列指令:
gcloud container fleet scopes namespaces delete NAMESPACE_NAME --scope=SCOPE_NAME
請注意,刪除機群命名空間的影響取決於您新增命名空間的方式:
- 如果建立新的機群命名空間:這項指令會刪除機群命名空間。系統也會一併刪除因建立 Fleet 命名空間而建立的 Kubernetes 命名空間,以及這些命名空間的工作負載。
- 如果已加入現有的 Kubernetes 命名空間:這項指令會刪除 Fleet 命名空間。您加入的原始命名空間不會遭到刪除。
控制台
如要在團隊範圍內管理機群命名空間,請按照下列步驟操作:
前往 Google Cloud 控制台的「Teams」(團隊) 頁面:
選取要管理車隊命名空間的團隊範圍。
列出機群命名空間
在團隊範圍內,選取「命名空間」分頁,即可查看這個範圍內建立的命名空間清單。
查看命名空間詳細資料
針對每個機群命名空間,您可以查看與該命名空間相關聯的標籤,以及依命名空間篩選的工作負載和記錄。
- 選取「命名空間」分頁,系統會顯示在團隊範圍內建立的機群命名空間清單。
- 按一下要查看詳細資料的車隊命名空間。
- 在「詳細資料」分頁中,您可以查看車隊命名空間和範圍標籤。
- 如要查看這個命名空間的工作負載,請按一下「View Workloads」(查看工作負載)。
- 在「工作負載」頁面中,您可以看到已依命名空間和與該命名空間團隊範圍相關聯的叢集篩選的工作負載。
- 在「記錄」分頁中,您可以依命名空間查看車隊範圍記錄。
將機群命名空間新增至團隊範圍
- 如要新增機群命名空間,請按一下頁面頂端的「新增命名空間」。
- 輸入新機群命名空間的名稱,並確保名稱符合機群命名空間命名限制。如要新增更多命名空間,請按一下「新增命名空間」。
- 按一下「更新團隊範圍」。
刪除機群命名空間
- 選取「命名空間」分頁,系統會顯示在團隊範圍內建立的機群命名空間清單。
- 按一下要刪除的命名空間旁邊的「垃圾桶」圖示。
- 輸入命名空間名稱,然後再次點按「Delete」(刪除),確認要刪除。
請注意,這麼做會產生什麼影響,取決於您新增命名空間的方式:
- 如果建立新的機群命名空間:系統會刪除機群命名空間。建立艦隊命名空間時建立的 Kubernetes 命名空間也會一併刪除,連同工作負載。
- 如果已加入現有 Kubernetes 命名空間:系統會刪除機群命名空間。不過,您加入的原始命名空間不會遭到刪除。
更新機群命名空間名稱
機群命名空間一經建立即無法編輯。如要更新機群命名空間名稱,請刪除命名空間,並在團隊範圍內建立新命名空間。
管理團隊存取權
gcloud
列出團隊成員
如要使用 add-app-operator-binding
指令列出所有獲准存取團隊範圍的團隊成員,以及他們的權限角色,請使用下列指令:
gcloud beta container fleet scopes list-app-operator-bindings SCOPE_NAME
更改下列內容:
- SCOPE_NAME:團隊範圍的專屬 ID。
移除小組成員
如要移除團隊成員的範圍存取權 (以 add-app-operator-binding
授予),請使用下列指令:
gcloud beta container fleet scopes remove-app-operator-binding SCOPE_NAME \
--group=TEAM_EMAIL
或
gcloud beta container fleet scopes remove-app-operator-binding SCOPE_NAME \
--user=USER_EMAIL
更改下列內容:
- SCOPE_NAME:團隊範圍的專屬 ID。
- TEAM_EMAIL 或 USER_EMAIL:要從團隊中移除的群組或使用者電子郵件地址。
如果團隊成員是透過 rbacrolebindings create
指令取得存取權,請改用 rbacrolebindings delete
指令移除團隊成員。
更新團隊範圍存取權
如要更新團隊範圍存取權 (例如授予團隊成員不同角色,或更新群組電子郵件地址),請按照上一節所述,從範圍中移除團隊成員,然後使用新詳細資料再次授予存取權。
如果團隊成員是透過 rbacrolebindings create
指令取得存取權,請改用 rbacrolebindings update
指令更新成員的存取權。
控制台
新增或移除團隊成員
如要在團隊範圍內管理團隊成員,請按照下列步驟操作:
前往 Google Cloud 控制台的「Teams」(團隊) 頁面:
選取要管理成員的團隊範圍。
如要將新團隊成員新增至範圍,請按照下列步驟操作:
- 按一下頁面頂端的「新增團隊成員」。請按照「建立團隊範圍」一節的詳細說明操作。
- 按一下「更新團隊範圍」。
如要從範圍中移除團隊成員,請按照下列步驟操作:
- 在「團隊」分頁中,找出要從團隊範圍移除的團隊成員,然後按一下旁邊的「垃圾桶」圖示。
- 點選「刪除」即可確認刪除。
您無法在 Google Cloud 控制台中編輯團隊成員的詳細資料。如要在 Google Cloud 控制台中更新範圍存取權 (例如授予團隊成員不同角色,或更新群組電子郵件地址),請從範圍中移除團隊成員,然後使用新詳細資料重新新增。
機群命名空間命名限制
在團隊範圍內建立機群命名空間時,不得使用下列保留名稱:
default
kube-system
gke-connect
kube-node-lease
kube-public
istio-system
gatekeeper-system
asm-system
config-management-system
anthos-creds
anthos-identity-service
capi-kubeadm-bootstrap-system
capi-system
cert-manager
gke-managed-metrics-server
gke-system
config-management-monitoring
istio-gateway
knative-serving
resource-group-system
gke-mcs
appdevexperience
vm-system
gmp-system
gmp-public
gke-gmp-system
gke-managed-filestorecsi
apigee
apigee-system
管理標籤
為協助您識別及管理範圍,您可以使用 Google Cloud CLI 為車隊命名空間和團隊範圍建立及管理標籤。
新增至團隊範圍的標籤會由範圍內的所有機群命名空間繼承,也就是說,這些標籤會附加至範圍內叢集的所有 Kubernetes 命名空間。直接新增至機群命名空間的標籤只會附加至對應的 Kubernetes 命名空間。如果團隊範圍標籤和機群命名空間標籤的索引鍵相同,則會套用團隊範圍標籤。
您可以新增以逗號分隔的鍵/值組合清單,一次處理多個鍵/值組合。
管理機群命名空間標籤
建立含有標籤的機群命名空間
如要建立具有標籤的機群命名空間,請執行下列指令:
gcloud container fleet scopes namespaces create NAMESPACE_NAME \
--scope SCOPE_NAME \
--namespace-labels KEY=VALUE
更改下列內容:
NAMESPACE_NAME
:您為機群中的命名空間選擇的專屬名稱。SCOPE_NAME
:要使用命名空間的團隊範圍。KEY
:標籤鍵/值組合的鍵。VALUE
:標籤鍵/值組合的值。
為現有機群命名空間新增或更新標籤
如要為現有命名空間新增或更新標籤,請執行下列指令:
gcloud container fleet scopes namespaces update NAMESPACE_NAME \
--scope SCOPE_NAME \
--update-namespace-labels KEY=VALUE
刪除機群命名空間標籤
如要刪除特定艦隊命名空間標籤,請執行下列指令:
gcloud container fleet scopes namespaces update NAMESPACE_NAME \
--scope SCOPE_NAME \
--remove-namespace-labels KEY
將 KEY
替換為以半形逗號分隔的清單,列出要移除的標籤鍵。
如要刪除所有車隊命名空間標籤,請執行下列指令:
gcloud container fleet scopes namespaces update NAMESPACE_NAME \
--scope SCOPE_NAME \
--clear-namespace-labels
管理團隊範圍標籤
建立含有標籤的團隊範圍
如要建立含有標籤的範圍,請執行下列指令:
gcloud container fleet scopes create SCOPE_NAME \
--namespace-labels KEY=VALUE
更改下列內容:
SCOPE_NAME
:您為新團隊範圍選擇的專屬識別名稱。KEY
:標籤鍵/值組合的鍵。VALUE
:標籤鍵/值組合的值。
為現有團隊範圍新增或更新標籤
如要為現有範圍新增或更新標籤,請執行下列指令:
gcloud container fleet scopes update SCOPE_NAME \
--update-namespace-labels KEY=VALUE
刪除團隊範圍標籤
如要刪除特定標籤,請執行下列指令:
gcloud container fleet scopes update SCOPE_NAME \
--remove-namespace-labels KEY
將 KEY
替換為以半形逗號分隔的清單,列出要移除的標籤鍵。
如要刪除所有標籤,請執行下列指令:
gcloud container fleet scopes update SCOPE_NAME \
--clear-namespace-labels
疑難排解
如果無法更新或建立機群團隊管理資源,請確認已啟用 GKE Enterprise API。如果您在設定機群團隊管理功能後,停用機群主專案中的 GKE Enterprise API,會發生下列情況:
- 您建立的任何團隊範圍和機群命名空間都會繼續正常運作,但無法更新。
- 您可以刪除現有的團隊範圍和機群命名空間。
- 無法建立新的團隊範圍和機群命名空間。
後續步驟
- 如要瞭解如何查看團隊層級指標和其他團隊專屬資訊,請參閱「使用團隊總覽」。
- 瞭解如何使用 Config Sync 將 Kubernetes 資源同步至團隊範圍和命名空間。