本頁說明如何在 GKE 連結叢集中建立及管理標記。
總覽
標記是可附加至 Google Cloud內資源的鍵/值組合。 您可以根據資源是否具備特定標記,有條件地允許或拒絕政策。
平台管理員可根據叢集是否具有特定標記,有條件地授予 Identity and Access Management (IAM) 角色。舉例來說,您可以設定 GKE,自動將 Identity and Access Management 角色授予約聘人員,讓他們存取通常只有全職員工才能存取的特定叢集。
建立標記後,您可以使用標記繫結,將標記以鍵/值組合的形式附加至 Google Cloud 資源。每個鍵只能附加一個值到資源。舉例來說,如果已將 env:dev 附加至叢集,就無法再附加 env:prod 或 env:test。每項資源最多可附加 50 個標記。
在 GKE 連結叢集中,您可以透過多種方法為資源加上註解,如下表所示:
| 註解類型 | 等級 | 說明 | 範例 |
|---|---|---|---|
| 標記 | GKE 叢集 |
根據標記有條件地允許或拒絕政策。 詳情請參閱 Resource Manager 說明文件的「標記總覽」。 |
自動授予約聘人員特定叢集的存取權,這些叢集通常只開放給正職員工。 |
| GKE 叢集標籤 | GKE 叢集 |
整理 GKE 資源,追蹤用量和帳單。 詳情請參閱「叢集標籤」。 |
區別貴機構中特定成本中心或團隊擁有的叢集。 |
| Kubernetes 標籤 | GKE 叢集 |
建立叢集元件和資源彼此之間的關聯,並管理資源生命週期。 詳情請參閱 Kubernetes 標籤和選取器。 |
要求工作負載排定在具有特定標籤的節點上。 |
事前準備
開始之前,請確認您已完成下列工作:
- 啟用 Google Kubernetes Engine API。 啟用 Google Kubernetes Engine API
- 如要使用 Google Cloud CLI 執行這項工作,請安裝並初始化 gcloud CLI。如果您先前已安裝 gcloud CLI,請執行
gcloud components update指令,取得最新版本。較舊的 gcloud CLI 版本可能不支援執行本文中的指令。
請確認您具備下列 IAM 角色,才能使用標記:
roles/resourcemanager.tagAdminroles/resourcemanager.tagUser
如要瞭解這些角色授予的權限,請參閱「必要權限」。
建立標記鍵和值
如要將標記附加至 GKE 資源,請先建立標記並設定值。如要建立標記鍵和值,請參閱資源管理員文件中的「建立標記」和「新增標記值」。
將標記附加至叢集
如果您具備適當權限,可以使用 Google Cloud CLI、 Google Cloud 控制台或 Tags API,將標記附加至現有叢集。
gcloud
如要建立標記繫結,將標記附加至叢集,請執行下列指令:
gcloud resource-manager tags bindings create \
--tag-value=TAG_VALUE_ID \
--parent=RESOURCE_ID \
--location=CLUSTER_LOCATION
更改下列內容:
TAG_VALUE_ID:要附加的標記值永久 ID 或命名空間名稱。例如:tagValues/4567890123。如要進一步瞭解標記 ID,請參閱「標記定義和 ID」。RESOURCE_ID:叢集的完整資源名稱,例如//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/attachedClusters/CLUSTER_NAME。資源 ID:
PROJECT_ID:您的 Google Cloud 專案 IDCLUSTER_NAME:叢集名稱。
CLUSTER_LOCATION:叢集管理位置的名稱。 Google Cloud
控制台
前往 Google Cloud 控制台的「Google Kubernetes Engine」頁面。
在叢集清單中,按一下您要修改的叢集名稱。
在「中繼資料」部分,按一下「標記」旁邊的 「編輯標記」。
如果機構未顯示在「標記」面板中,請按一下「選取範圍」。選取機構,然後按一下「開啟」。
在「標記」面板中,選取「新增標記」。
從清單中選取要附加的代碼鍵。輸入關鍵字即可篩選清單。
從清單中選取要附加的標記值。輸入關鍵字即可篩選清單。
按一下 [儲存]。
在「確認」對話方塊中,按一下「確認」即可附加標記。
系統會發送通知,確認代碼已更新。
API
如要將標記附加至資源,您必須先建立標記繫結的 JSON 表示法,其中包含標記值和資源的永久 ID。如要進一步瞭解標記繫結的格式,請參閱「TagBinding 參考資料」。
搭配叢集所在端點使用 tagBindings.create 方法。
POST https://LOCATION-cloudresourcemanager.googleapis.com/v3/tagBindings
將 LOCATION 替換為叢集所在位置,例如 us-central1。 Google Cloud
JSON 要求主體:
{
"parent": "RESOURCE_ID",
"tagValue": "TAG_VALUE_ID"
}
更改下列內容:
RESOURCE_ID:叢集的完整資源名稱,例如//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/attachedClusters/CLUSTER_NAME。資源 ID:
PROJECT_ID:您的 Google Cloud 專案 IDCLUSTER_NAME:叢集名稱。
TAG_VALUE_ID:要附加的標記值永久 ID 或命名空間名稱。例如:tagValues/4567890123。如要進一步瞭解標記 ID,請參閱「標記定義和 ID」。
輸出結果會與下列內容相似:
{
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.resourcemanager.v3.TagBinding",
"name": "tagBindings///container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/attachedClusters/CLUSTER_NAME/tagValues/TAG_VALUE_ID",
"parent": "//container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/attachedClusters/CLUSTER_NAME",
"tagValue": "TAG_VALUE_ID"
}
}
列出附加至叢集的標記
您可以使用 gcloud CLI、 Google Cloud 控制台或 Tags API,列出附加至叢集的標記。
gcloud
如要取得附加至叢集的標記繫結清單,請執行下列指令:
gcloud resource-manager tags bindings list \
--parent=RESOURCE_ID \
--location=CLUSTER_LOCATION
更改下列內容:
RESOURCE_ID:叢集的完整資源名稱,例如//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/attachedClusters/CLUSTER_NAME。資源 ID:
PROJECT_ID:您的 Google Cloud 專案 IDCLUSTER_NAME:叢集名稱。
CLUSTER_LOCATION:叢集所在位置。 Google Cloud
控制台
前往 Google Cloud 控制台的「Google Kubernetes Engine」頁面。
在叢集清單中,按一下要查看的叢集名稱。
在「中繼資料」專區中,找到「標記」旁邊目前附加的標記值。
API
如要取得叢集的標籤繫結清單,請使用 tagBindings.list 方法和叢集所在端點。
GET https://LOCATION-cloudresourcemanager.googleapis.com/v3/tagBindings
JSON 要求主體:
{
"parent": RESOURCE_ID,
}
更改下列內容:
RESOURCE_ID:叢集的完整資源名稱,例如//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/attachedClusters/CLUSTER_NAME。資源 ID:
PROJECT_ID:您的 Google Cloud 專案 IDCLUSTER_NAME:叢集名稱。
輸出結果會與下列內容相似:
"tagBindings": [
{
"name": "tagBindings/%2F%2Fcontainer.googleapis.com%2Fprojects%2Ftags-bugbash-project%2Flocations%2Fus-central1%2Fclusters%2Ftestcluster/tagValues/758072120217",
"parent": "//container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/attachedClusters/CLUSTER_NAME",
"tagValue": "TAG_VALUE_ID"
}
]
從叢集卸離標記
如要從叢集卸離標記,請使用 gcloud CLI、Google Cloud 控制台或 Tags API,刪除附加至叢集的標記繫結資源。如要刪除標記,請先從所有附加資源中分離。
gcloud
如要將附加至叢集的標記繫結分離,請執行下列指令:
gcloud resource-manager tags bindings delete \
--tag-value=TAG_VALUE_ID \
--parent=RESOURCE_ID \
--location=CLUSTER_LOCATION
更改下列內容:
TAG_VALUE_ID:要卸離的標記值的永久 ID 或命名空間名稱。例如:tagValues/4567890123。 如要進一步瞭解標記 ID,請參閱「標記定義和 ID」。RESOURCE_ID:叢集的完整資源名稱,例如//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/attachedClusters/CLUSTER_NAME。資源 ID:
PROJECT_ID:您的 Google Cloud 專案 IDCLUSTER_NAME:叢集名稱。
CLUSTER_LOCATION:叢集所在位置。 Google Cloud
控制台
前往 Google Cloud 控制台的「Google Kubernetes Engine」頁面。
在叢集清單中,按一下您要修改的叢集名稱。
在「中繼資料」部分,按一下「標記」旁邊的 「編輯標記」。
在「標記」面板中,找出要取消連結的標記,然後按一下旁邊的 「刪除項目」。
按一下 [儲存]。
在「確認」對話方塊中,按一下「確認」即可卸除標籤。
系統會發送通知,確認代碼已更新。
API
如要刪除叢集的標記繫結,請使用 tagBindings.delete 方法,並指定叢集所在的端點。
DELETE https://LOCATION-cloudresourcemanager.googleapis.com/v3/TAG_BINDING_NAME
將 TAG_BINDING_NAME 替換為要卸離的 tagBinding 物件完整資源名稱。例如:tagBindings/container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/tagValues/TAG_VALUE_ID。
刪除標籤鍵和標籤值
刪除標記鍵和值之前,請確保標記已從所有資源卸離。然後參閱「刪除標記」一文,瞭解如何刪除鍵和值。
身分與存取權管理條件和標記
您可以使用標記和 IAM 條件,有條件地將角色繫結授予專案階層中的使用者。如果叢集附加的標記已變更或刪除,且叢集的身分與存取權管理政策含有條件式角色繫結,GKE 會根據更新後的條件重新評估存取權。
系統會在專案層級檢查列出及建立 GKE 叢集的授權,而非在個別叢集層級。如果您使用附帶叢集層級標記的條件式 IAM 角色繫結,限制特定叢集的存取權,使用者嘗試列出或建立專案中的叢集時,可能會發生錯誤。為避免發生這類錯誤,請將標記附加至父項專案,並使用條件式角色繫結授與清單或建立存取權。如要瞭解角色和權限,請參閱「IAM 角色參考資料」。
如要進一步瞭解 IAM 中的條件式存取權授予,請參閱「身分與存取權管理條件和標記」。
後續步驟
- 瞭解如何使用標記設定機構政策。
- 進一步瞭解如何管理標記及將標記附加至資源。
- 查看其他支援代碼的服務。
- 瞭解如何搭配身分與存取權管理使用標記。