我需要创建一个检查群集的shell脚本 状态。
我看到kubectl describe-nodes
提供了很多数据
我可以将其输出到json,然后解析它,但也许只是过分杀了。
有没有一种简单的方法可以使用kubectl
命令来获取集群的状态?只是它的上/下
答案 0 :(得分:2)
用于检查是否可以访问API服务器的最便宜的方法是kubectl version
。此外,kubectl cluster-info
还为您提供了更多信息。
答案 1 :(得分:2)
除了Michael的answer,这只会告诉您有关API服务器或主服务和内部服务(如KubeDns等)的信息,而不会告诉您有关节点的信息。
这取决于您的需要和“状态”的定义。您可以先运行kubectl cluster-info
,然后运行kubectl get nodes
,然后使用STATUS
,awk
或kubectl自己的jq
之类的解析工具检查所有节点的-o jsonpath
列验证所有节点是否准备就绪的选项。
答案 2 :(得分:1)
以下命令将显示调度程序,控制器和etcd
的运行状况
kubectl get cs
下面的命令列出了Kubernetes的核心组件,例如etcd
,控制器,调度程序,kube-proxy,core-dns,网络插件。所有这些吊舱都应运行,以确保Kubernetes处于健康状态。
kubectl get pod -n kube-system
最后部署一个前端和后端Pod,并验证Pod间的通信,以确保群集正常运行。
答案 3 :(得分:0)
以下是根据要求获取集群状态的命令:
要获取有关Kubernetes主服务器运行位置,CoreDNS运行位置,kubernetes-dasboard运行位置的信息,请使用
kubectl cluster-info
要获取详细信息以进一步调试和诊断群集问题,请使用kubectl cluster-info dump
要仅获取节点使用的运行状况,请kubectl get componentstatus
或kubectl get cs
*要显示有关资源的详细信息,请使用kubectl describe node <node>