EMC*_*EMC 4 autoscaling amazon-eks aws-auto-scaling
我有一个 aws 托管节点组,当我将所需大小和最小大小设置为 0 时,该节点组会出现意外行为。我希望托管节点组不会有任何可启动的节点,但是一旦我尝试使用带有标签的nodeSelector eks.amazonaws.com/nodegroup: my-node-group-name,集群自动缩放器会将托管节点组的所需大小设置为1,并且将启动节点。
但是,集群自动缩放程序日志表明待处理的 pod 不会触发扩展,因为它不可调度:pod didn't trigger scale-up (it wouldn't fit if a new node is added)。然而,当我在托管节点组中手动将所需大小设置为 1 时,pod 已成功调度,因此我知道 nodeSelector 工作正常。
我认为这可能是一个标签问题,如下所述:,但我将托管节点组上的标签设置为可自动发现。
spec:
containers:
- command:
- ./cluster-autoscaler
- --cloud-provider=aws
- --namespace=kube-system
- --node-group-auto-discovery=asg:tag=k8s.io/cluster-autoscaler/enabled,k8s.io/cluster-autoscaler/my-cluster-name
- --balance-similar-node-groups=true
- --expander=least-waste
- --logtostderr=true
- --skip-nodes-with-local-storage=false
- --skip-nodes-with-system-pods=false
- --stderrthreshold=info
- --v=4
Run Code Online (Sandbox Code Playgroud)
我在自动缩放组上设置了相同的标签:
Key Value Tag new instances
eks:cluster-name my-cluster-name Yes
eks:nodegroup-name my-node-group-name Yes
k8s.io/cluster-autoscaler/enabled true Yes
k8s.io/cluster-autoscaler/my-cluster-name owned Yes
kubernetes.io/cluster/my-cluster-name owned Yes
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?或者这是将所需大小设置为 0 的预期行为吗?
呃,事实证明这只是 aws 与集群自动缩放器不兼容,他们没有告诉你。您可以将受管节点组缩减至零,但如果没有解决方法,则无法将其重新扩展。
为了使 cluster-autoscaler 从 0 开始扩展节点组,它会根据节点组规范构造一个伪节点,在本例中为 aws autoscaling 组。为了让 cluster-autoscaler 了解要在该伪节点上放置哪些标签以检查它是否允许调度 pod,您需要向 nodegroup 添加特定标签。
遗憾的是,aws 不会为您将此标签添加到自动缩放组,也不会将标签从托管节点组传播到自动缩放组。实现此目的的唯一方法是在受管节点组创建自动缩放组后,自行将标签添加到自动缩放组中。该问题已在此处跟踪。
| 归档时间: |
|
| 查看次数: |
6319 次 |
| 最近记录: |