托管节点组上的节点污点
Amazon EKS 支持通过托管节点组配置 Kubernetes 污点。污点和容差能力协同工作,以确保不会将 Pods 安排在不适当的节点上。可以为一个节点应用一个或多个 Pod。这标志着节点不应该接受任何不容忍污点的 Pods。对 Pods 应用容忍度,并允许(但不要求)将 Pods 安排到具有匹配污点的节点上。有关更多信息,请参阅 Kubernetes 文档中的污点和容忍度
可以使用Amazon Web Services Management Console或通过 Amazon EKS API,将 Kubernetes 节点污点应用于新的和现有的托管节点组。
-
有关使用 Amazon Web Services Management Console 创建带有污点的节点组的信息,请参见 创建托管节点组。
-
以下是使用 Amazon 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 参考文档中的污点
注意
-
创建节点组后,可以使用
UpdateNodegroupConfig
API 更新污点。 -
污点键必须以字母或数字开头。可以包含字母、数字、连字符(
)、句点(-
)和下划线(.
)。最长可为 63 个字符_
-
污点键也可以以 DNS 子域前缀和单个
开头。如果它以 DNS 子域前缀开头,则长度可以为 253 个字符。/
-
值是可选的,必须以字母或数字开头。可以包含字母、数字、连字符(
)、句点(-
)和下划线(.
)。最长可为 63 个字符_
-
直接使用 Kubernetes 或 Amazon Web Services Management Console 时,污点效果必须为
、NoSchedule
或PreferNoSchedule
。但是,使用 Amazon CLI 或 API 时,污点效果必须是NoExecute
、NO_SCHEDULE
或PREFER_NO_SCHEDULE
。NO_EXECUTE
-
每个节点组最多允许 50 个污点。
-
如果从节点中手动删除使用托管节点组创建的污点,则 Amazon EKS 不会将污点重新添加回该节点。即使在托管节点组配置中指定了污点,也是如此。
您可以使用 aws eks update-nodegroup-config
Amazon CLI 命令为托管节点组添加、删除或替换污点。