我得到以下错误
W0316 22:04:26.025272 1 clusterstate.go:514] Failed to get nodegroup for <nodename>: Wrong id: expected format aws:///<zone>/<name>, got
W0316 22:04:26.025296 1 clusterstate.go:514] Failed to get nodegroup for <nodename>: Wrong id: expected format aws:///<zone>/<name>, got
W0316 22:04:26.025303 1 clusterstate.go:514] Failed to get nodegroup for <nodename>: Wrong id: expected format aws:///<zone>/<name>, got
W0316 22:04:26.025309 1 clusterstate.go:514] Failed to get nodegroup for <nodename>: Wrong id: expected format aws:///<zone>/<name>, got
W0316 22:04:26.025316 1 clusterstate.go:514] Failed to get nodegroup for <nodename>: Wrong id: expected format aws:///<zone>/<name>, got
W0316 22:04:26.025324 1 clusterstate.go:514] Failed to get nodegroup for <nodename>: Wrong id: expected format aws:///<zone>/<name>, got
W0316 22:04:26.025340 1 clusterstate.go:560] Readiness for node group *** not found
E0316 22:04:02.705833 1 static_autoscaler.go:257] Failed to scale up: failed to build node infos for node groups: Wrong id: expected format aws:///<zone>/<name>, got
使用cluster-autoscasler
https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler
答案 0 :(得分:3)
之所以发生这种情况,是因为您的某些节点没有标识您的节点组的标记。
正如@Matthew L Daniel在评论中提到的,它需要AWS实例上的标签才能正常工作。
以下是official documentation关于身份识别的工作原理和原因:
假设底层集群在某种节点组之上运行。在节点组内,所有计算机具有相同的容量并具有相同的指定标签集。因此,增加节点组的大小将创建一个与群集中已有的新机器类似的新机器 - 它们将不会运行任何用户创建的pod(但将从节点清单和守护程序集中运行所有pod) 。)
正如您在installation documentation中找到的那样:
要运行自动发现带有节点的ASG的集群自动调节器,请使用--node-group-auto-discovery标志,并使用密钥k8s.io/cluster-autoscaler/enabled和密钥kubernetes.io/cluster标记ASG。 /&LT;你的集群名称&gt;。
因此,只需将这些标记添加到您的节点即可。
此外,您可以根据需要为节点使用尽可能多的AWS标记和Kubernetes标签,它不会影响自动缩放器。
<强> UPD:强>
Autoscaler在获取ProviderID
时无法正常工作且崩溃的原因是Kubelet中错过了--cloud-provider
选项值。 Addin aws
值应该可以解决这类问题。