協助改善此頁面
想要為此使用者指南做出貢獻? 捲動至此頁面底部,然後在 上選取編輯此頁面 GitHub。您的貢獻將幫助我們的使用者指南更適合所有人。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
防Pods止在特定節點上排程
Amazon EKS 支援透過受管節點群組設定Kubernetes污染。污點和容差共同運作,以確保 Pods 不會排程至不適當的節點上。一個或多個污點可以套用至一個節點。這表示節點不應該接受無法容許污點的任何 Pods。容差會套用至 Pods,並允許 (但不需要) Pods 排程到具有相符污點的節點上。如需詳細資訊,請參閱 Kubernetes 文件中的污點和容差
Kubernetes節點污染可以使用 AWS Management Console 或透過 Amazon EKS API 將節點污染套用至新的和現有的受管節點群組。
-
如需使用污點建立節點群組的資訊 AWS Management Console,請參閱為您的叢集建立受管節點群組。
-
以下是使用 AWS CLI建立具有污點之節點群組的範例:
aws eks create-nodegroup \ --cli-input-json ' { "clusterName": "
my-cluster
", "nodegroupName": "node-taints-example
", "subnets": [ "subnet-1234567890abcdef0
", "subnet-abcdef01234567890
", "subnet-021345abcdef67890
" ], "nodeRole": "arn:aws:iam::111122223333
:role/AmazonEKSNodeRole
", "taints": [ { "key": "dedicated
", "value": "gpuGroup
", "effect": "NO_SCHEDULE
" } ] }'
如需詳細資訊和用量範例,請參閱 Kubernetes 參考文件中的污點
注意
-
在您使用建立節點群組之後,可以更新 Taint。
UpdateNodegroupConfig
API -
污點金鑰必須以字母或數字開頭。可包含字母、數字、連字號 (
)、句點 (-
) 及底線 (.
)。長度上限為 63 個字元。_
-
或者,污染鍵可以以DNS子域前綴和單個字首開始。
如果它以DNS子網域前置字元開頭,則長度可為 253 個字元。/
-
值是選用的,必須以字母或數字開頭。可包含字母、數字、連字號 (
)、句點 (-
) 及底線 (.
)。長度上限為 63 個字元。_
-
當直接使用 Kubernetes 或 AWS Management Console時,污點效果必須是
、NoSchedule
或PreferNoSchedule
。但是,使用 AWS CLI 或時API,污點效果必須是NoExecute
NO_SCHEDULE
、或PREFER_NO_SCHEDULE
。NO_EXECUTE
-
每個節點群組最多允許 50 個污點。
-
如果從節點手動移除使用受管節點群組建立的污點,Amazon EKS 不會將污染物新增回節點。即使在受管節點群組組態中指定了污點,也是如此。
您可以使用指aws eks update-nodegroup-config
AWS CLI 令來新增、移除或取代受管理節點群組的 TAIT。