【TDH运维必备技能】Pod状态检查与说明

  运维必备技能, 原理
内容纲要

概要描述

TDH 5开始实现了容器化,所有的服务都被分到一个个Pod中,关于k8s的常见词解释比如什么是Pod等可以参考文章:
https://www.toutiao.com/article/6659871608712200708/?tt_from=weixin&utm_campaign=client_share&wxshare_count=1&timestamp=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状态

file

如何查看服务的pod状态

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

kubectl get pod -owide

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

kubectl get pod -owide | grep hdfs

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

kubectl命令结果展示

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

file

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

file

如上图所示,命令的结果主要包括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的生命周期,主要包括以下几种:

file

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

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

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

file

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

file

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

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

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

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

这篇文章对您有帮助吗?

平均评分 0 / 5. 次数: 0

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。