当前位置:主页 > 查看内容

集群可用,但节点状态为“不可用”?_云容器引擎 CCE_常见问题_

发布时间:2021-09-24 00:00| 位朋友查看

简介:当集群状态为“可用”,而集群中部分节点状态为“不可用”时,请参照如下方式来排查解决。 排查思路 以下排查思路根据原因的出现概率进行排序,建议您从高频率原因往低频率原因排查,从而帮助您快速找到问题的原因。 如果解决完某个可能原因仍未解决问题,请……

当集群状态为“可用”,而集群中部分节点状态为“不可用”时,请参照如下方式来排查解决。

排查项一:节点负载过高

问题描述:

集群中节点连接异常,多个节点报写入错误,业务未受影响。

问题定位:

  1. 登录CCE控制台,选择左侧导航栏的资源管理 > 节点管理
  2. 单击不可用的节点名称进入节点详情页。
  3. 单击“监控”页签下的“查看详细监控信息”,前往运维管理页面查看历史监控记录。

    图2 主机监控-监控视图

    当节点cpu和内存负载过高时,会导致节点网络时延过高,或系统OOM,最终展示为不可用。

解决方案:

  1. 建议迁移业务,减少节点中的工作负载数量,并对工作负载设置资源上限,降低节点CPU或内存等资源负载。
  2. 将集群中对应的cce节点进行数据清理。
  3. 对集群进行节点扩容。
  4. 您也可以重启节点,请至ECS控制台对节点进行重启,重启方法请参见如何重启弹性云服务器?
  5. 重置节点,详情请参见重置节点

节点恢复为可用后,工作负载即可恢复正常。

排查项二:弹性云服务器是否删除或故障

  1. 确认集群是否可用。

    登录CCE控制台,选择左侧导航栏的资源管理 > 集群管理,确定集群是否可用。

    • 若集群非可用状态,如错误等,请提交工单联系技术支持,恢复集群故障。
    • 若集群状态为“正常”,而集群中部分节点状态为“不可用”,请执行2

  2. 登录ECS控制台,选择左侧菜单栏中的“弹性云服务器”,查看对应的弹性云服务器状态。

    • 若弹性云服务器状态为“已删除”:请在CCE的“资源管理 > 节点管理”页面删除对应节点,再重新创建节点。
    • 若弹性云服务器状态为“关机”“冻结”:请先恢复弹性云服务器,约3分钟后集群节点可自行恢复。
    • 若弹性云服务器出现故障:请先尝试重启弹性云服务器,若无法恢复,请提交工单联系技术支持,恢复故障。
    • 若弹性云服务器状态为“可用”:请参考排查项七:内部组件是否正常登录弹性云服务器进行本地故障排查。

排查项三:弹性云服务器能否登录

  1. 登录华为云控制台,在页面顶部的“服务列表”中选择“计算 > 弹性云服务器 ECS”。
  2. 在弹性云服务器列表中找到集群新建的节点(一般命名为:集群名称-随机数),并单击“操作”栏的“远程登录”
  3. 确认界面显示的节点名称与虚机内的节点名称是否一致,并且密码或者密钥能否登录。

    图3 确认界面显示的名称
    图4 确认虚机内的节点名称和能否登录

    如果节点名称不一致,并且密码和密钥均不能登录,说明是ECS创建虚机时的cloudinit初始化问题,临时规避可以尝试重启节点,之后再提单给ECS确认问题根因。

排查项四:安全组是否被修改

  1. 登录华为云控制台,选择“服务列表 > 网络 > 虚拟私有云 VPC”,在左侧栏目树中单击“访问控制 > 安全组”,找到集群控制节点的安全组。

    控制节点安全组名称为:集群名称-cce-control-编号。如下图示例,集群名称为:***-cce-control-***。

    您可以通过集群名称查找安全组,再进一步在名称中区分“-cce-control-”字样,即为本集群安全组。
    图5 集群主节点

  2. 单击安全组名称,进入详情页面,请确保集群主节点的安全组规则与下图红框中配置的值相同。

    图6 查看安全组规则-入方向

    安全组入方向规则解读:

    • 4789:容器间网络互访。
    • 5443:kubelet:node的kubelet监听master的kube-api。
    • 5444:kube-dns。
    • 4003/9443:node的canal监听master的canal-api。
    • 8445:node的stroage_driver访问master的csms-storagemgr。
    图7 查看安全组规则-出方向

排查项五:检查安全组规则中是否包含Master和Node互通的安全组策略

请检查安全组规则中是否包含Master和Node互通的安全组策略。

已有集群添加节点时,如果子网对应的VPC新增了扩展网段且子网是扩展网段,要在控制节点安全组(即集群名称-cce-control-随机数)中添加如下三条安全组规则,以保证集群添加的节点功能可用(新建集群时如果VPC已经新增了扩展网段则不涉及此场景)。下图中的源地址为节点网段。

排查项六:检查磁盘是否异常

在v1.7.3-r7版本后的集群中新建节点后,会给节点绑定一个100G的docker专用数据盘。若数据盘卸载或损坏,会导致docker服务异常,最终导致节点不可用。

图8 集群新建节点时的数据盘

请检查节点挂载的数据盘是否已被卸载。若已卸载请重新挂载数据盘,再重启节点,节点可恢复。

图9 磁盘检查

排查项七:内部组件是否正常

  1. 登录不可用节点对应的弹性云服务器。

    登录方法请参见登录Linux弹性云服务器

  2. 执行以下命令判断paas组件是否正常。

    1.13版本,命令示例如下:

    systemctl status kubelet

    执行失败,请提交工单联系技术支持;执行成功,可查看到各组件的状态为Active,如下图:

    若服务的组件状态不是Active,执行如下命令:

    重启命令根据出错组件指定,如canal组件出错,则命令为:systemctl restart canal

    重启后再查看状态:systemctl status canal

    1.13之前版本,命令示例如下:

    su paas -c '/var/paas/monit/bin/monit summary'

    执行失败,请提交工单联系技术支持;执行成功,可查看到各组件的状态,如下图:

    若有服务的组件状态不是Running,请尝试重启对应服务。例如下图所示为canal组件异常:

    重启命令为:su paas -c '/var/paas/monit/bin/monit restart canal'

    重启后再查看状态:su paas -c '/var/paas/monit/bin/monit summary'

    此时,各组件的Status都为Running状态,如下图:

  3. 若执行失败,请执行如下命令,查看monitrc进程的运行状态。

    ps -ef | grep monitrc

    • 若存在此进程,请杀死此进程,进程杀死后会自动重新拉起。

      kill -s 9 `ps -ef | grep monitrc | grep -v grep | awk '{print $2}'`

    • 若没有此进程,或杀死后没有重新拉起,请提交工单联系技服处理。

  4. 若依然无法恢复,请收集“/var/log/messages”和“/var/paas/sys/log”中的日志,并提交工单,联系我们进行检查和修复。

排查项八:DNS地址配置错误

  1. 登录华为云控制台,在页面顶部的“服务列表”中选择“计算 > 弹性云服务器 ECS”。
  2. 在弹性云服务器列表中找到集群新建的节点(一般命名为:集群名称-随机数),并单击“操作”栏的“远程登录”
  3. 登录节点后,在日志/var/log/cloud-init-output.log中有域名解析失败相关的报错,如下图:

  4. 此时,请确认节点上能否解析此域名。

解决方案:

  • 如果不能,请确认/etc/resolv.conf文件中的DNS地址与配置在VPC的子网上的DNS地址是否一致,通常是由于此DNS地址配置错误,导致无法解析此域名。

    修复建议:在VPC界面修改DNS地址后,重置此节点。

  • 如果能,执行此安装脚本: bash /home/paas/node/install_node.sh,手动触发安装,通常3分钟内能够安装完成。

排查项九:检查节点中的vdb盘是否被删除

如果节点中的vdb盘被删除,可参考此章节内容恢复节点。

排查项十:排查Docker服务是否正常

  1. 执行以下命令确认docker服务是否正在运行:

    systemctl status docker

    若执行失败或服务状态非active,请确认docker运行失败原因,必要时可提交工单联系技术支持。

  2. 执行以下命令检查当前节点上所有容器数量:

    docker ps -a | wc -l

    若命令卡死、执行时间过长或异常容器数过多(1000以上),请确认外部是否存在重复不断地创删负载现象,在大量容器频繁创删过程中有可能出现大量异常容器且难以及时清理。

    在此场景下可考虑停止重复创删负载或采用更多的节点去分摊负载,一般等待一段时间后节点会恢复正常,必要情况可执行docker rm {container_id}手动清理异常容器。


本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:客户端错误 - 弹性伸缩 下一篇:没有了

推荐图文

  • 周排行
  • 月排行
  • 总排行

随机推荐