TDH运维必备技-Pod状态检查与说明

概要描述

TDH 5开始实现了容器化,所有的服务都被分到一个个Pod中,关于k8s的常见词解释比如什么是Pod等可以参考文章:
K8S核心篇:Pod-CSDN博客

详细说明

在TDH中,判断服务的健康状态包括两部分: VITAL_SIGN_CHECK跟DAEMON_CHECK

其中后者主要就是检查该服务的Pod状态

如何查看服务的pod状态

TDH服务的pod是由TOS服务负责管理的,所以查看pod状态的前提是TOS服务必须健康,然后才可以使用如下命令检查:

kubectl get pod -owide

在TDH集群的任意节点中执行上述命令,都会列出集群中所有的服务的pod状态,如果要查看特定某一个服务,可以接上grep命令来过滤:

kubectl get pod -owide | grep hdfs

下面对命令的结果进行说明

kubectl命令结果展示

在TDH中,一个服务往往会包含多个“角色”,可以在服务页面的“角色”选项卡查看:

该页面上的每一个角色都会在后台对应一个pod,比如上图的hdfs服务状态正常时,后台查看pod时如下:

如上图所示,命令的结果主要包括7列

NAME READY STATUS RESTARTS AGE IP NODE

第一列:pod名字

第一列“NAME”是pod的名字,它的组成结构是:服务名-角色名-服务的序列号-随机标识符,具体的说明可以参考:

https://nj.transwarp.cn:8180/?p=8643&preview=true&preview_id=8643

第二列、第三列: pod的状态

第二列第三列分别是READY跟STATUS,它们组合在一起标志了pod的健康状态

其中的STATUS标志着pod的生命周期,主要包括以下几种:

简单理解的话,可以认为除了Running状态之外其他都是不健康的。

READY则可以理解为pod容器中进程是否正常

还是以hdfs为例子,STATUS必须是Running,READY必须是1/1或者2/2才能表示pod是健康的

如果出现下图中的0/1那么虽然STATUS是Running,但pod也是不健康的:

第四列、第五列:pod的寿命

第五列AGE表示pod已经启动多久了,第四列RESTARTS则表示在该段时间内这个pod自动重启的次数

第六列、第七列:pod的调度

这两列是IP跟NODE,表示该pod所被调度到的节点的ip地址跟hostname

阅读剩余
THE END