防Pods止在特定節點上排程 - Amazon EKS

協助改善此頁面

想要為此使用者指南做出貢獻嗎? 捲動至此頁面底部,然後選取 [編輯此頁面於] 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時,污點效果必須是 NoSchedulePreferNoScheduleNoExecute。但是,使用 AWS CLI 或時API,污點效果必須是NO_SCHEDULEPREFER_NO_SCHEDULE、或NO_EXECUTE

  • 每個節點群組最多允許 50 個污點。

  • 如果從節點手動移除使用受管節點群組建立的污點,Amazon EKS 不會將污染物新增回節點。即使在受管節點群組組態中指定了污點,也是如此。

您可以使用指aws eks update-nodegroup-config AWS CLI 令來新增、移除或取代受管理節點群組的 TAIT。