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.