背景:
代码语言:javascript复制升级Kubernetes版本从1.14.1-->1.17.0,官方说明不能跨版本升级,所以只好一个版本一个版本升级。最终升到1.17.0后发现API的格式有改动,之前的中间件版本很多不支持。所以回滚到1.15.7。
官方升级说明:https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/
接下来我们直接说下回滚的过程:
ps:建议回滚之前先对master做快照!!!
1、为了保持服务可用,我们需要先drain节点,但这个过程会出现抖动。
master 上执行
代码语言:javascript复制kubectl drain $NODE --ignore-daemonsets --delete-local-data --force kubectl delete node
2、kubectl reset
3、yum history 查看更新历史
4、yum history info 19 查看更新的详情
5、yum history undo 19 回滚
这里需要注意的是kubeadm和kubectl是分开upgrade的所以两个都需要回滚。
6、回滚完之后我们再将node加入cluster。
1)master 上生成加入指令
代码语言:javascript复制kubeadm token create --print-join-command