在Kubernetes中,標籤(Labels)和汙點(Taints)可用於管理和調度叢集中的資源。標籤支援對Kubernetes對象(例如節點)進行標識和分類 ;汙點可以使Pod排斥一類特定的節點,讓這些Pod不被調度到某節點上。
建議已參見Kubernetes官方文檔Labels和Selectors瞭解標籤的構成與用法,參見Taints和Tolerations瞭解汙點和容忍的用法和Effect(NoSchedule、NoExecute和PreferNoSchedule)。
建立與管理節點標籤
標籤可以對節點進行標識和分類。您也可以通過labelSelector篩選並操作具有特定標籤的節點。
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇。
單擊標籤與汙點管理,單擊標籤頁簽,選擇待操作的節點,單擊添加標籤,然後按照頁面指引完成標籤名稱和值的配置。
添加完成後,在標籤列表的標籤列,您可以查看所有標籤,並按需執行以下操作。
單擊標籤,按照指定標籤篩選帶有對應標籤的節點。
單擊標籤的
,按照頁面提示刪除標籤。說明某些Kubernetes原生標籤無法刪除。刪除後系統會自動重新添加。
建立與管理節點汙點
汙點是節點的一種屬性,用於控制某些Pod不被調度到某節點上。如需允許調度器將Pod調度到該節點上,還需聲明對應的容忍。常見情境如下。
專用節點:指定節點僅供特定使用者或工作負載使用。
特殊硬體節點:確保只有需要特殊硬體(例如GPU)的Pod被調度到這些節點上。
基於汙點的驅逐:通過為節點添加
NoExecute的汙點,並為待保留的Pod添加對應容忍,實現Pod的選擇性驅逐。
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇。
單擊標籤與汙點管理,單擊汙點頁簽,選擇待操作的節點,單擊添加汙點,然後按照頁面指引完成汙點名稱、值和Effect的配置。
關於汙點的格式和Effect,請參見汙點和容忍度。
配置項
說明
名稱
長度為1~63個字元,必須以字母、數字或字元
[a-z0-9A-Z]開頭和結尾,中間可包含字母、數字、短劃線(-)、底線(_)、英文半形句號(.)。如果指定首碼,必須是DNS子域,即一系列由英文半形句號(.)分隔的DNS標籤,不超過253個字元,以正斜線(/)結尾。
值
可以為空白。不超過63個字元,必須以字母、數字或字元
[a-z0-9A-Z]開頭和結尾,可包含字母、數字、短劃線(-)、底線(_)、英文半形句號(.)。Effect
NoSchedule:如果汙點中存在至少一個Effect值為NoSchedule的汙點,則系統不會將Pod分配到該節點。
NoExecute:不僅阻止新Pod被調度到該節點上,還會驅逐存量的不相容的Pod。
PreferNoSchedule:盡量避免將Pod調度到不能容忍其汙點的節點上,但不強制。
添加完成後,在汙點列表的汙點列可查看所有汙點。支援以下操作。
單擊汙點,按照指定汙點篩選帶有對應汙點的節點。
單擊汙點的
,按照頁面提示刪除汙點。