Cluster autoscaler v1.0.4 kubernetes错误

时间:2018-03-16 22:23:37

标签: kubernetes

我得到以下错误

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

1 个答案:

答案 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值应该可以解决这类问题。