Kubectl client 和 server version 差距错误
每天捣鼓k8s就是各种填坑。不过在查问题解决办法的时候有个人说
遇到坑不要怕,百度谷歌就是了。填完了坑,再踩两脚,以后走起来就平了。
说得真好。爆炸的心态慢慢也就平复了。
回归正题,坑长这个样子:
kubectl -f apply any.yaml
都会报错:
Error from server (NotFound): the server could not find the requested resource
一开始我以为是apiserver的问题,但是apiserver是正常运行的。搜索了很长时间,还是在yandex上搜索到可能是Kubectl cli和server的版本差距过大造成的问题。
看一下我的两个版本:kubectl version
Client Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.3", GitCommit:"5fa2db2bd46ac79e5e00a4e6ed24191080aa463b", GitTreeState:"clean", BuildDate:"2018-01-18T21:12:46Z", GoVersion:"go1.9.2", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.17.5", GitCommit:"72c30166b2105cd7d3350f2c28a219e6abcd79eb", GitTreeState:"clean", BuildDate:"2020-01-18T23:23:21Z", GoVersion:"go1.13.5", Compiler:"gc", Platform:"linux/amd64"}
可以看到cli的版本是v1.9.3,而server的版本是1.17.5。差的太多了。
继续搜索如何升级kubectl cli之,百度就别想能找到答案了。在k8s官网找到了安装kubectl的方法,重新安装了一下,kubectl cli的版本就升级到最新v1.18.5了。
这下再试一下
kubectl apply -f anyfile.yaml
终于可以运行yaml文件了。
参考
https://kubernetes.io/docs/tasks/tools/install-kubectl/#before-you-begin (升级kubectl cli)