Kubernetes V1.16.8没有';t支持';节点角色';标签使用“--节点标签=节点角色.kubernetes.io/master=";
将Kube aws v1.15.5 cluster升级至下一版本1.16.8 用例: 我想为主节点和工作节点保留与我在v1.15中使用的相同的节点标签 当我尝试将集群升级到V1.16时--node标签被限制为使用“node role” 如果我将节点角色保留为“node role.kubernetes.io/master”,则升级后kubelet无法启动。如果删除标签,Kubernetes V1.16.8没有';t支持';节点角色';标签使用“--节点标签=节点角色.kubernetes.io/master=";,kubernetes,kube-aws,Kubernetes,Kube Aws,将Kube aws v1.15.5 cluster升级至下一版本1.16.8 用例: 我想为主节点和工作节点保留与我在v1.15中使用的相同的节点标签 当我尝试将集群升级到V1.16时--node标签被限制为使用“node role” 如果我将节点角色保留为“node role.kubernetes.io/master”,则升级后kubelet无法启动。如果删除标签,kubectl get node输出显示升级节点的none 我如何繁殖 升级前,我备份了“cp/etc/sysconfig/kub
kubectl get node
输出显示升级节点的none
我如何繁殖
升级前,我备份了“cp/etc/sysconfig/kubelet/etc/sysconfig/kubelet bkup”并从中删除“-role”,升级完成后,我通过替换编辑文件“mv/etc/sysconfig/kubelet bkup/etc/sysconfig/kubelet”移动了kubelet sysconfig。现在,即使在kubelet服务重新启动后,我也可以将Noderole视为主节点/工作节点
我现在面临的问题是什么
虽然我在现有集群上成功执行了升级。集群作为Kube AWS模型在AWS中运行。因此,只要Cluster Autoscaler触发ASG,ASG就会启动一个新节点
但是,新节点无法加入集群,因为代码库中存在节点标签“node role.kubernetes.io/master”
如何在ASG scale in过程中动态添加节点角色?。任何解决方案都将不胜感激
注:
(Kubeadm,kubelet,kubectl)-v1.16.8我已经解决了这个问题。我创建了一个监视节点事件的Python代码。因此,每当ASG启动一个新节点时,在它加入集群之后,该节点将具有角色“”,稍后python代码将动态地向该节点添加适当的标签 此外,我还使用为node label创建的python脚本创建了一个docker映像,它将作为一个pod运行。pod将部署到集群中,并完成标记新节点的工作 参考GitHub中给出的解决方案 我已经创建了一个docker图像,它是公开的 谢谢,
Jaffer您好,您可以检查autoscaler创建的节点是否具有匹配的kubeadm和kubelet版本吗?升级到较新版本后,可能需要重新配置autoscaler的节点池模板。是的,所有二进制文件都是最新的。