"kubeadm upgrade apply v1.18.0-00" 好像没有升级master节点

"kubeadm upgrade apply v1.18.0-00" does not seem to upgrade the master node

我对此很困惑kubeadm upgrade

正如您从我下面的屏幕截图中看到的那样,当显示 Mac 中的 kubectl version -o json 时,我的 serverVersion 停留在 v1.17.2。

当我在我的 MASTER 节点上时,我发出 kubeadm upgrade plan 并且系统显示 kubeadm upgrade apply v1.18.0 升级。

但是,升级后,我的当前版本仍然显示 v1.17.2。

您可以从带有 kubectl get nodes -o wide 的第 3 个屏幕截图中看到节点都显示 v1.18.0。

但是,kubectl version -o json,仍然显示服务器版本为 v1.17.2。

此外,我的 k9s 继续显示我的 K8s Rev: v1.17.2

补充问题。

为什么在MASTER节点上,输入kubectl版本时,客户端和服务器版本会不同?显示在下面的倒数第二个屏幕剪辑中。

MASTER节点上的kubectl不就是CLIENT&SERVER吗?我的意思是,如果我通过 ssh 连接到 MASTER 节点,并且使用 kubectl,我是不是在 SERVER 本身上发出 CLIENT 请求?那么,CLIENT & SERVER 版本怎么可能不同呢?

谁能告诉我我做错了什么?

提前致谢。

问题是 emacs/etc/kubernetes/manifests 文件中创建了它的正常备份文件,这就是问题所在。我不确定为什么 kubectl 这些备份文件有问题,但在我从目录中删除这些备份后,您可以看到我的 kubectl version 用于 Client & 服务器 版本匹配。

谢谢尼克!

我的评论:

Please check manifest folder /etc/kubernetes/manifest for any backup files foe API server. (e.g. kube-apiserver.yaml.xxxx). Move these files somewhere else and restart kubelet.

的灵​​感来自 Github 的 "Kubernetes/issues" 部分关于该问题的非常好的讨论。

Since kubelet uses every file in this folder one of the older ones must have been the winner when starting the pod.

另外还有一个拉取请求(PR) 在此 thread。结果是,在 2020 年 1 月 17 日,PR 从 neolit123:1.18-kubeadm-ugprade-rollback merged 到 master。

这就是为什么下次从 更新 k8s 1.18.x :-)

时不应该遇到这个问题

希望对您有所帮助。