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-metering
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
流程
检查未完成的、显示
ReportingPeriodUnmetDependencies
状态的 meteringReport
资源:oc get reports
$ oc get reports
Copy 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 14s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查
NEWEST METRIC
小于报告结束日期的ReportDataSource
资源:oc get reportdatasource
$ oc get reportdatasource
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查
reporting-operator
Pod
资源的健康状态,以检查大量 pod 重启:oc get pods -l app=reporting-operator
$ oc get pods -l app=reporting-operator
Copy 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 8d
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Reporting Operator pod 以更高的率重启。
检查
reporting-operator
Pod
资源是否有OOMKilled
终止:oc describe pod/reporting-operator-84f7c9b7b6-fr697
$ oc describe pod/reporting-operator-84f7c9b7b6-fr697
Copy 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-operator
Pod
资源的当前内存限值:oc describe pod reporting-operator-67d6f57c56-79mrt
$ oc describe pod reporting-operator-67d6f57c56-79mrt
Copy 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-metering
Copy 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。