Kubectl server and client versions
When we run
kubectl version
, we get information details for server and client.
Client Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.5+k3s1", GitCommit:"405bf79da97831749733ad99842da638c8ee4802", GitTreeState:"clean", BuildDate:"2021-12-18T00:43:30Z", GoVersion:"go1.16.10", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.5+k3s1", GitCommit:"405bf79da97831749733ad99842da638c8ee4802", GitTreeState:"clean", BuildDate:"2021-12-18T00:43:30Z", GoVersion:"go1.16.10", Compiler:"gc", Platform:"linux/amd64"}
Here, Server Version
represents version of Kubernetes control plane. Control plane includes api-server
, etcd
, various controllers etc.
Client Version
represents Kubectl tool's version. Kubectl is a client tool to interact with control plane.
Kubectl can exist indepedent of Kubernetes cluster.
According to kubectl doc
You must use a kubectl version that is within one minor version difference of your cluster. For example, a v1.23 client can communicate with v1.22, v1.23, and v1.24 control planes. Using the latest compatible version of kubectl helps avoid unforeseen issues.
In your case, it seems your server version is far behind of client version.