我有一个Kubernetes集群,该集群运行具有不同机器类型(即cpu-heavy,gpu,ram-heavy)的各种应用程序,并安装了cluster-autoscaler(CA)以使用自动发现来管理Auto Scaling组(ASG)。
Kubernetes版本:EKS 1.11
集群自动缩放器:v1.13.2
我已经配置了我的ASG,使其包含适当的CA标签。这些ASG通常缩小到0个节点,并将根据工作负载进行放大。进入CA日志,我还验证了CA是否承认ASG的存在。但是,每当我尝试使用nodeSelector创建Pod时,CA都不会按比例放大相应的ASG并响应“谓词失败:nodeSelector不匹配”。我也将适当的节点标签添加到了ASG的标签中。
由于从0个节点向上扩展而造成的限制吗?
似乎无法在网上找到类似的问题。任何反馈将有所帮助!谢谢!
答案 0 :(得分:3)
更新:CA文档更新
我的ASG标签不正确。确保您拥有k8s.io/cluster-autoscaler/node-template/label/some-label
以确保当ASG缩小到0时,CA可以看到您的节点标签。当前,CA不会基于ASG标签创建节点标签,但是此功能正在开发中。
答案 1 :(得分:1)
我不确定您使用哪个云提供商。
当使用nodeSelector时,CA似乎无法按节点标签进行扩展,但是,如果更改定义所需标签的方式并使用nodeAdffinitiy,则它将按比例放大。
我与Amazon支持人员进行了交谈,他们声称这是因为CA无法读取userdata脚本和标签。
无论如何,这似乎仅需要从0个节点开始扩展
此外,https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/aws/README.md#scaling-a-node-group-to-0在这里还指出,您应该标记ASG,它应该可以工作
答案 2 :(得分:0)
我这里的设置要简单得多。我只有一组ASG。最小数量为1,最大数量为10。
也许自动发现无法正常工作。这是最好的方法,但是没有用。我将尝试下面的示例来管理多个ASG。
我和您有同样的疑问,我不确定自动缩放器是否可以在0个节点范围内正常工作。