Let say I want to find the kubelet and apiserver version of my k8s master(s), what\'s the best way to do it?
I am aware of the following commands:
kubect
kubectl version --short
will give you a short and sweet version of your k8-cluster
aathith@k8-master:~# kubectl version --short
Client Version: v1.18.1
Server Version: v1.18.1
edit 1:
In terminal 1
aathith@k8-master:~# kubectl proxy
Starting to serve on 127.0.0.1:8001
In terminal 2
aathith@k8-master:~# curl http://localhost:8001/version -k
{
"major": "1",
"minor": "18",
"gitVersion": "v1.18.1",
"gitCommit": "e0fccafd69541e3750d460ba0f9743b90336f24f",
"gitTreeState": "clean",
"buildDate": "2020-04-16T11:35:47Z",
"goVersion": "go1.13.9",
"compiler": "gc",
"platform": "linux/amd64"
}
kubectl version
also shows the apiserver version. For example, this is the output when I run it:
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"2", GitVersion:"v1.2.4", GitCommit:"3eed1e3be6848b877ff80a93da3785d9034d0a4f", GitTreeState:"clean"}
Server Version: version.Info{Major:"1", Minor:"2", GitVersion:"v1.2.4", GitCommit:"3eed1e3be6848b877ff80a93da3785d9034d0a4f", GitTreeState:"clean"}
The second line ("Server Version") contains the apiserver version. There isn't a way to get the master's kubelet version if it isn't registered as one of the nodes (which it isn't if it isn't showing up in kubectl get nodes
), but in most deployments it'll be the same version as the apiserver.