14.4. 调试低延迟节点调整状态
使用 PerformanceProfile
自定义资源(CR)状态字段来报告集群节点中的调优状态和调试延迟问题。
14.4.1. 调试低延迟 CNF 调整状态
PerformanceProfile
自定义资源(CR)包含报告调整状态和调试延迟降级问题的状态字段。这些字段报告描述 Operator 协调功能状态的条件。
当附加到性能配置集的机器配置池处于降级状态时会出现一个典型的问题,从而导致 PerformanceProfile
状态降级。在这种情况下,机器配置池会给出一个失败信息。
Node Tuning Operator 包含 performanceProfile.spec.status.Conditions
状态字段:
Status: Conditions: Last Heartbeat Time: 2020-06-02T10:01:24Z Last Transition Time: 2020-06-02T10:01:24Z Status: True Type: Available Last Heartbeat Time: 2020-06-02T10:01:24Z Last Transition Time: 2020-06-02T10:01:24Z Status: True Type: Upgradeable Last Heartbeat Time: 2020-06-02T10:01:24Z Last Transition Time: 2020-06-02T10:01:24Z Status: False Type: Progressing Last Heartbeat Time: 2020-06-02T10:01:24Z Last Transition Time: 2020-06-02T10:01:24Z Status: False Type: Degraded
Status
字段包含指定 Type
值来指示性能配置集状态的 Conditions
:
Available
- 所有机器配置和 Tuned 配置集都已被成功创建,且集群组件可用于处理它们(NTO、MCO、Kubelet)。
Upgradeable
- 代表 Operator 维护的资源是否处于可安全升级的状态。
Progressing
- 表示已从性能配置集启动部署过程。
Degraded
如果出现以下情况代表错误:
- 验证性能配置集失败。
- 创建所有相关组件未能成功完成。
每个类型都包括以下字段:
状态
-
特定类型的状态(
true
或false
)。 Timestamp
- 事务的时间戳。
Reason string
- 机器可读的原因。
Message string
- 描述状态和错误详情的人类可读的原因信息(如果存在)。
14.4.1.1. 机器配置池
性能配置集及其创建的产品会根据关联的机器配置池(MCP)应用到节点。MCP 包含有关应用由性能配置集创建的机器配置的有价值的信息,它包括了内核 arg、Kube 配置、巨页分配和 rt-kernel 部署。Performance Profile 控制器监控 MCP 中的更改,并相应地更新性能配置集状态。
MCP 返回到性能配置集状态的唯一条件是 MCP 处于 Degraded
状态,这会导致 performaceProfile.status.condition.Degraded = true
。
Example
以下示例是创建关联机器配置池(worker-cnf
)的性能配置集:
关联的机器配置池处于降级状态:
# oc get mcp
输出示例
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE master rendered-master-2ee57a93fa6c9181b546ca46e1571d2d True False False 3 3 3 0 2d21h worker rendered-worker-d6b2bdc07d9f5a59a6b68950acf25e5f True False False 2 2 2 0 2d21h worker-cnf rendered-worker-cnf-6c838641b8a08fff08dbd8b02fb63f7c False True True 2 1 1 1 2d20h
MCP 的
describe
部分包括了原因:# oc describe mcp worker-cnf
输出示例
Message: Node node-worker-cnf is reporting: "prepping update: machineconfig.machineconfiguration.openshift.io \"rendered-worker-cnf-40b9996919c08e335f3ff230ce1d170\" not found" Reason: 1 nodes are reporting degraded status on sync
降级状态也应该出现在标记为
degraded = true
的性能配置集的status
字段中:# oc describe performanceprofiles performance
输出示例
Message: Machine config pool worker-cnf Degraded Reason: 1 nodes are reporting degraded status on sync. Machine config pool worker-cnf Degraded Message: Node yquinn-q8s5v-w-b-z5lqn.c.openshift-gce-devel.internal is reporting: "prepping update: machineconfig.machineconfiguration.openshift.io \"rendered-worker-cnf-40b9996919c08e335f3ff230ce1d170\" not found". Reason: MCPDegraded Status: True Type: Degraded
14.4.2. 为红帽支持收集调试数据延迟
在提交问题单时同时提供您的集群信息,可以帮助红帽支持为您进行排除故障。
您可使用 must-gather
工具来收集有关 OpenShift Container Platform 集群的诊断信息,包括节点调整、NUMA 拓扑和其他调试延迟设置问题所需的信息。
为了获得快速支持,请提供 OpenShift Container Platform 和低延迟调整的诊断信息。
14.4.2.1. 关于 must-gather 工具
oc adm must-gather
CLI 命令可收集最有助于解决问题的集群信息,如:
- 资源定义
- 审计日志
- 服务日志
您在运行该命令时,可通过包含 --image
参数来指定一个或多个镜像。指定镜像后,该工具便会收集有关相应功能或产品的信息。在运行 oc adm must-gather
时,集群上会创建一个新 pod。在该 pod 上收集数据,并保存至以 must-gather.local
开头的一个新目录中。该目录在当前工作目录中创建。
14.4.2.2. 收集低延迟数据
使用 oc adm must-gather
CLI 命令来收集有关集群的信息,包括与低延迟性能优化相关的功能和对象,包括:
- Node Tuning Operator 命名空间和子对象。
-
MachineConfigPool
和关联的MachineConfig
对象。 - Node Tuning Operator 和关联的 Tuned 对象。
- Linux 内核命令行选项。
- CPU 和 NUMA 拓扑
- 基本 PCI 设备信息和 NUMA 本地性。
先决条件
-
使用具有
cluster-admin
角色的用户访问集群。 - 安装了 OpenShift Container Platform CLI(oc)。
流程
-
进入要存储
must-gather
数据的目录。 运行以下命令来收集调试信息:
$ oc adm must-gather
输出示例
[must-gather ] OUT Using must-gather plug-in image: quay.io/openshift-release When opening a support case, bugzilla, or issue please include the following summary data along with any other requested information: ClusterID: 829er0fa-1ad8-4e59-a46e-2644921b7eb6 ClusterVersion: Stable at "<cluster_version>" ClusterOperators: All healthy and stable [must-gather ] OUT namespace/openshift-must-gather-8fh4x created [must-gather ] OUT clusterrolebinding.rbac.authorization.k8s.io/must-gather-rhlgc created [must-gather-5564g] POD 2023-07-17T10:17:37.610340849Z Gathering data for ns/openshift-cluster-version... [must-gather-5564g] POD 2023-07-17T10:17:38.786591298Z Gathering data for ns/default... [must-gather-5564g] POD 2023-07-17T10:17:39.117418660Z Gathering data for ns/openshift... [must-gather-5564g] POD 2023-07-17T10:17:39.447592859Z Gathering data for ns/kube-system... [must-gather-5564g] POD 2023-07-17T10:17:39.803381143Z Gathering data for ns/openshift-etcd... ... Reprinting Cluster State: When opening a support case, bugzilla, or issue please include the following summary data along with any other requested information: ClusterID: 829er0fa-1ad8-4e59-a46e-2644921b7eb6 ClusterVersion: Stable at "<cluster_version>" ClusterOperators: All healthy and stable
从工作目录中创建的
must-gather
目录创建一个压缩文件。例如,在使用 Linux 操作系统的计算机上运行以下命令:$ tar cvaf must-gather.tar.gz must-gather-local.54213423446277122891
- 1
- 将
must-gather-local.5421342344627712289//
替换为must-gather
工具创建的目录名称。
注意创建压缩文件以将数据附加到支持问题单中,或者在创建性能配置集时与 Performance Profile Creator wrapper 脚本一起使用。
- 在红帽客户门户中为您的问题单附上压缩文件。