Oracle宣布推出适用于Kubernetes (OKE) 工作节点故障排除工具的新 Oracle 云基础设施 (OCI) 容器引擎,我们称为 Node Doctor。Node Doctor现在预装在所有 OKE 工作节点上。
Node Doctor 重点关注与Kubernetes 和 Oracle 云基础设施 (OCI)之间的交集相关如会影响Kubernetes工作节点的运行状况的一些常见问题。Node Doctor会运行许多检查以确保工作节点按预期运行。例如Node Doctor可用于指示节点上的pod数量是否过多导致kubelet、每个工作节点上运行的主节点代理出现问题,或者节点是否正在运行已知错误版本的依赖项(如runC),以及应该被回收的依赖项。
Node Doctor 旨在解决与OKE 集群工作节点相关的常见基础架构级别问题。例如,Kubernetes 节点条件不是“Active”或节点状态不是“Ready”,应该使用 Node Doctor来检查其他节点是否有问题。Node Doctor会提供有关潜在问题的解决方案,帮助运维人员操作工作节点重新上线。它还可以捕获有用的数据以与Oracle支持人员共享,协助解决现有问题。
如需对节点问题进行故障排除,只需导航到包含有问题节点的节点池,然后单击”TroubleshootNodes”。这将打开一个包含多个选项的对话,用于说明如何访问节点和运行Node Doctor。Oracle基础架构支持访问OKE节点和运行Node Doctor的多条路径。可以通过 SSH 访问其工作节点的用户可以通过 SSH 连接并自己运行命令。没有SSH访问权限的用户可以使用OCI计算节点的堡垒机功能,该功能允许具有正确权限的用户在节点上运行命令,即使没有SSH 访问权限。
Node Doctor有两个重要的功能,“Node节点检查”和“生成检测报告”。
Node节点检查
此命令将执行一些前提条件检查,以确保工作节点的工作状态就绪。这包括验证kubelet(在 Kubernetes 工作节点上运行的主要节点代理)是否处于活动状态、是否运行正确的版本以及是否可以访问Kubernetes API服务器。在确认满足前提条件后,它将检查各种常见问题并打印PASS或打印FAIL旁边的问题取决于检查的结果。它还会将检查的输出保存在日志文件中以供将来参考。如果其中一项检查失败,Node Doctor还将在适用的情况下打印修复步骤和文档链接。例如,特定的网络相关问题,包括不活动的proxymux证书或无法访问的 kube-apiserver,将返回以下输出:
如下是整体检查结果的样例输出:
生成检测报告
运行命令如下:
运行命令将生成一个包含诊断信息的 .tar 文件,此文件可与Oracle支持人员共享,协助诊断问题,找出解决方案。
如下运行命令的样例输出:
随着时间的推移,Node Doctor功能将继续得到增强,包括发现的其他问题、症状和解决方案,敬请关注。

作者简介
巨晓兵,甲骨文云平台资深技术顾问,拥有 10 年以上 IT 相关工作经验。目前主要负责甲骨文云平台产品在解决方案中的设计和实施。在加入甲骨文公司前,主要供职于 亚信,Gemalto,负责产品研发和项目实施等工作。具有多年系统架构设计经验,熟悉架构设计的理念与设计方法,且具有多年IOT系统工作经验。您可以通过xiaobing.ju@oracle.com与他联系。