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


77

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

我知道以下命令:

kubectl cluster-info

仅显示端点。

kubectl get nodes; kubectl describe node <node>;

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

还有

kubectl version

但这仅显示kubectl版本,而不显示kubelet或apiserver版本。

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


1
找到了另一个名为的程序kubectl get cs/componentstatuses,其中列出了控制器管理器和调度程序,但是它不显示版本kubectl describe cs且未实现。
肯尼·何

Answers:


105

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

第二行(“服务器版本”)包含apiserver版本。如果没有将主节点的kubelet版本注册为节点之一,则无法获得它的版本(如果未显示在节点中,则不是这样kubectl get nodes),但是在大多数部署中,它都是相同的版本作为apiserver。


13
您还可以添加-o yaml到大多数命令以获取更多详细信息,例如,kubectl get nodes -o yaml将为您提供节点的kubelet版本。
konradstrack '16

17

kubectl version --short会给你一个简短而甜美的k8集群版本

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.