概要描述
TDH 5开始实现了容器化,所有的服务都被分到一个个Pod中,关于k8s的常见词解释比如什么是Pod等可以参考文章:
https://www.toutiao.com/article/6659871608712200708/?tt_from=weixin&utm_campaign=client_share&wxshare_count=1×tamp=1550679238&app=news_article&utm_source=weixin&iid=62546986164&utm_medium=toutiao_ios&group_id=6659871608712200708&wid=1659172031504
详细说明
在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