This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.第 8 章 metering 故障排除与调试
Metering 是一个已弃用的功能。弃用的功能仍然包含在 OpenShift Container Platform 中,并将继续被支持。但是,这个功能会在以后的发行版本中被删除,且不建议在新的部署中使用。
有关 OpenShift Container Platform 中已弃用或删除的主要功能的最新列表,请参阅 OpenShift Container Platform 发行注记中已弃用和删除的功能部分。
参考以下部分来协助排除和调试与 metering 相关的问题。
除本部分所述信息外,还需查看以下主题:
8.1. metering 故障排除 复制链接链接已复制到粘贴板!
metering 常会遇到 pod 无法启动的问题。Pod 可能会因为缺少资源或其所依赖的资源(如 StorageClass 或 Secret 资源)不存在而无法启动。
8.1.1. 计算资源不足 复制链接链接已复制到粘贴板!
安装或运行 metering 时常会遇到计算资源不足的问题。随着集群增长并创建更多报告,Reporting Operator pod 需要更多内存。如果内存用量达到 pod 限制,集群会认为 pod 内存不足(OOM),并以 OOMKilled 状态终止它。确保向 metering 分配的资源满足安装先决条件中描述的最低资源要求。
Metering Operator 不根据集群中的负载自动扩展 Reporting Operator。因此,Reporting Operator pod 的 CPU 使用量不会随着集群增长而增加。
要确定资源或调度方面是否存在问题,请按照 Kubernetes 文档Managing Compute Resources for Containers 中的故障排除说明操作。
要排除由于缺少计算资源而出现的问题,请在 openshift-metering 命名空间中检查以下内容。
先决条件
目前处于
openshift-metering命名空间中。运行以下命令来进入openshift-metering命名空间:oc project openshift-metering
$ oc project openshift-meteringCopy to Clipboard Copied! Toggle word wrap Toggle overflow
流程
检查未完成的、显示
ReportingPeriodUnmetDependencies状态的 meteringReport资源:oc get reports
$ oc get reportsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME QUERY SCHEDULE RUNNING FAILED LAST REPORT TIME AGE namespace-cpu-utilization-adhoc-10 namespace-cpu-utilization Finished 2020-10-31T00:00:00Z 2m38s namespace-cpu-utilization-adhoc-11 namespace-cpu-utilization ReportingPeriodUnmetDependencies 2m23s namespace-memory-utilization-202010 namespace-memory-utilization ReportingPeriodUnmetDependencies 26s namespace-memory-utilization-202011 namespace-memory-utilization ReportingPeriodUnmetDependencies 14s
NAME QUERY SCHEDULE RUNNING FAILED LAST REPORT TIME AGE namespace-cpu-utilization-adhoc-10 namespace-cpu-utilization Finished 2020-10-31T00:00:00Z 2m38s namespace-cpu-utilization-adhoc-11 namespace-cpu-utilization ReportingPeriodUnmetDependencies 2m23s namespace-memory-utilization-202010 namespace-memory-utilization ReportingPeriodUnmetDependencies 26s namespace-memory-utilization-202011 namespace-memory-utilization ReportingPeriodUnmetDependencies 14sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查
NEWEST METRIC小于报告结束日期的ReportDataSource资源:oc get reportdatasource
$ oc get reportdatasourceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查
reporting-operatorPod资源的健康状态,以检查大量 pod 重启:oc get pods -l app=reporting-operator
$ oc get pods -l app=reporting-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME READY STATUS RESTARTS AGE reporting-operator-84f7c9b7b6-fr697 2/2 Running 542 8d
NAME READY STATUS RESTARTS AGE reporting-operator-84f7c9b7b6-fr697 2/2 Running 542 8d1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Reporting Operator pod 以更高的率重启。
检查
reporting-operatorPod资源是否有OOMKilled终止:oc describe pod/reporting-operator-84f7c9b7b6-fr697
$ oc describe pod/reporting-operator-84f7c9b7b6-fr697Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Reporting Operator pod 因 OOM 终止而终止。
增加 reporting-operator pod 内存限制
如果您增加 pod 重启和 OOM 终止事件,您可以检查 Reporting Operator pod 的当前内存限值。增加内存限值可让 Reporting Operator Pod 更新报告数据源。如有必要,将 MeteringConfig 资源中的内存限值增加到 25% - 50%。
流程
检查
reporting-operatorPod资源的当前内存限值:oc describe pod reporting-operator-67d6f57c56-79mrt
$ oc describe pod reporting-operator-67d6f57c56-79mrtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Reporting Operator pod 的当前内存限值。
编辑
MeteringConfig资源以更新内存限制:oc edit meteringconfig/operator-metering
$ oc edit meteringconfig/operator-meteringCopy to Clipboard Copied! Toggle word wrap Toggle overflow MeteringConfig资源示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 在
MeteringConfig资源的resources字段中添加或增加内存限值。
注意如果在增加内存限制后仍然有大量 OOM 终止事件,这可能代表报告处于待处理状态。
8.1.2. 未配置 StorageClass 资源 复制链接链接已复制到粘贴板!
Metering 要求为动态置备配置默认 StorageClass 资源。
有关如何检查是否为集群配置了 StorageClass 资源、如何设置默认值以及如何配置 metering 以使用默认存储类的信息,请参阅有关配置 metering 的文档。
8.1.3. 未正确配置 secret 复制链接链接已复制到粘贴板!
metering 常会遇到在配置持久性存储时所提供的 secret 不正确的问题。请务必查看示例配置文件并根据您的存储提供程序指南创建 secret。