kubernetes – Kubectl client and server version mismatch

I have installed kubectl cli and minikube v1.21.0 version.
Below is how it looks:

minikube version
minikube version: v1.21.0
commit: 76d74191d82c47883dc7e1319ef7cebd3e00ee11
kubectl version
Client Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.0", GitCommit:"cb303e613a121a29364f75cc67d3d580833a7479", GitTreeState:"clean", BuildDate:"2021-04-08T16:31:21Z", GoVersion:"go1.16.1", Compiler:"gc", Platform:"linux/amd64"}

When I try to start minikube with command

minikube start --vm-driver=none

as shown below
enter image description here

Client Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.0", GitCommit:"cb303e613a121a29364f75cc67d3d580833a7479", GitTreeState:"clean", BuildDate:"2021-04-08T16:31:21Z", GoVersion:"go1.16.1", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.7", GitCommit:"132a687512d7fb058d0f5890f07d4121b3f0a2e2", GitTreeState:"clean", BuildDate:"2021-05-12T12:32:49Z", GoVersion:"go1.15.12", Compiler:"gc", Platform:"linux/amd64"}

  1. It showed minikube v1.21.0 on Amazon 2 and Preparing kubernetes v1.20.7. What does this mean ? Why is it not preparing v1.21.0 by default when minikube version is already v1.21.0?

  2. kubectl server version is considered as v1.20.7 and NOT v1.21.0. Why did this happen?

But if I start minikube as below:

minikube start --vm-driver=none --kubernetes-version v1.21.0

then it considers only v1.21.0 and not v1.20.7.

This is causing confusion.
What exactly is happening?
Will it cause any issues in future if we proceed with client server versions mismatch ?

Read more here: Source link