自訂 EKS 叢集上的系統元件

本頁說明如何套用自訂容許度和標籤,在 GKE 連結叢集中自訂 Google 擁有的系統元件。自訂這些元件後,您就能更精確地管理這些元件在環境中的運作位置和方式。

總覽

將叢集附加至 Google Cloud時,根據預設,Google 擁有的系統元件不會包含可自訂的欄位,例如容許度。因此,您可能會遇到 Pod 無法在可用節點上排程等問題,進而影響整體叢集連結和功能。此外,您可能需要控管特定節點上的元件放置和管理作業,包括為機構和營運目的套用自訂標籤。

自訂系統元件可解決這些問題,並讓您進一步控管及彈性調整這些元件在叢集中的運作方式。您可以將自訂容許條件標籤套用至 Google 擁有的系統元件:

  • 容許度可讓 Google 元件排程至具有特定 Kubernetes 汙染的節點,方便您強制執行工作負載分離或使用專屬節點集區。自訂容許度可直接解決問題,避免因無法修改的汙點而無法正確放置元件。

  • 標籤可讓您按照自己的作業標準,彈性分類及識別 Google 系統元件。自訂標籤可與現有的監控、記錄和政策執行工具整合。

規定與限制

請注意下列限制:

  • 只有在註冊叢集時,才能新增自訂容許度和標籤。
  • 您最多可以為叢集新增 10 個自訂容許度和 10 個自訂標籤。
  • 無法使用下列標籤:

    • name
    • component
    • app
    • 任何包含 k8s.iokubernetes.io 的標籤,因為這些標籤屬於 Kubernetes 中的保留標籤
    • 包含 google 的任何標籤
    • 包含 gke.io 的任何標籤

新增自訂容許度

Google 擁有的系統元件 Pod 一律包含下列容許度:

  - key: components.gke.io/gke-managed-components
    operator: Exists

如要指定自訂容許度,請將 --system-component-tolerations 標記新增至 gcloud container attached clusters register 指令:

gcloud container attached clusters register CLUSTER_NAME \
  --location=GOOGLE_CLOUD_REGION \
  ...
  --system-component-tolerations=COMPONENT_TOLERATION \

更改下列內容:

  • CLUSTER_NAME:叢集名稱。
  • GOOGLE_CLOUD_REGION:用於管理叢集的 Google Cloud 區域。
  • COMPONENT_TOLERATION:以半形逗號分隔的清單,列出要新增的容許度。您可以提供下列格式的鍵、值、運算子和效果:

    • 如果是 Equal 運算子:請使用 key=value:operator:effect 格式,例如 workload=hpc:Equal:NoSchedule。這項設定表示只有當 taint 的鍵和值與 workload=hpc 完全相同時,Pod 才會容許該 taint。
    • 如果是 Exists 運算子:請使用 key:operator:effect 格式,例如 workload:Exists:NoSchedule。這項設定表示 Pod 會容忍節點上具有 workload 鍵的任何 taint,無論值為何。
    • 在任何節點上排定時間:使用 :operator:effect 格式,例如 :Exists:NoSchedule。這項設定表示 Pod 容許節點上具有 NoSchedule 效果的任何 taint,並忽略 taint 的鍵或值。

    如需可使用的運算子和效果清單,請參閱 Kubernetes 說明文件中的「Taints and Tolerations」。

新增自訂標籤

如要指定自訂標籤,請將 --system-component-labels 標記新增至 gcloud container attached clusters register 指令:

gcloud container attached clusters register CLUSTER_NAME \
  --location=GOOGLE_CLOUD_REGION \
  ...
  --system-component-labels=COMPONENT_LABEL \

更改下列內容:

  • CLUSTER_NAME:叢集名稱。
  • GOOGLE_CLOUD_REGION:用於管理叢集的 Google Cloud 區域。
  • COMPONENT_LABEL:以半形逗號分隔的清單,當中列有一或多個要新增的標籤。您提供的標籤和值格式為 key=value。例如 env=production,region=us-east-1。雖然每個標籤都必須有鍵,但與該鍵相關聯的值可以為空。例如:backend=""

後續步驟