使用 kubectl 查找有关 Kubernetes master 的详细信息的命令是什么?

What is command to find detailed information about Kubernetes master(s) using kubectl?

假设我想找到我的 k8s master(s) 的 kubelet 和 apiserver 版本,最好的方法是什么?

我知道以下命令:

kubectl cluster-info

仅显示端点。

kubectl get nodes; kubectl describe node <node>;

它显示了非常详细的信息,但只显示了节点而不是主节点。

还有

kubectl version

但这只显示了 kubectl 版本,而不是 kubelet 或 apiserver 版本。

我可以使用哪些其他命令来识别集群的属性?

kubectl version 也显示了 apiserver 版本。例如,这是我 运行 时的输出:

$ 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"}

第二行 ("Server Version") 包含 apiserver 版本。如果 master 的 kubelet 版本没有注册为节点之一(如果它没有出现在 kubectl get nodes 中就不是),则没有办法获取它,但在大多数部署中它'将与 apiserver 的版本相同。

kubectl version --short 会给你一个简短而甜蜜的 version 你的 k8-cluster

aathith@k8-master:~# kubectl version --short
Client Version: v1.18.1
Server Version: v1.18.1

编辑 1:
在 1 号航站楼

aathith@k8-master:~# kubectl proxy
Starting to serve on 127.0.0.1:8001

在 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"
}