将 Kube-aws v1.15.5 集群升级到下一个版本 1.16.8。
用例:
我想为我在 v1.15 中使用的 Master 和 Worker 节点保留相同的节点标签。
当我尝试将集群升级到 V1.16 时,--node-labels 被限制为使用“node-role”
如果我将节点角色保留为“node-role.kubernetes.io/master ”,则升级后 kubelet 无法启动。如果我删除标签,则kubectl get node
输出显示none
升级节点。
我如何重现?
在升级之前,我备份了“ cp /etc/sysconfig/kubelet /etc/sysconfig/kubelet-bkup ”,并从中删除了“-role”,升级完成后,我通过替换已编辑的内容来移动 kubelet sysconfig文件' mv /etc/sysconfig/kubelet-bkup /etc/sysconfig/kubelet '。现在,即使在 kubelet 服务重新启动后,我也可以将 Nodeerole 视为 Master/Worker。
我现在面临的问题?
虽然我成功地对现有集群执行了升级。该集群作为 Kube-aws 模型在 AWS 中运行。因此,只要 Cluster-Autoscaler 触发 ASG,它就会启动一个新节点。
但是,由于代码库中存在节点标签“node-role.kubernetes.io/master”,新节点无法加入集群。
如何在 ASG 缩减过程中动态添加节点角色?任何解决方案将不胜感激。
注意:(Kubeadm、kubelet、kubectl)- v1.16.8