×

关于节点指标仪表板

节点指标仪表板使管理员和支持团队成员能够监控与 Pod 扩展相关的指标,包括用于诊断和排除扩展问题的扩展限制。特别是,您可以使用仪表板显示的可视化分析来监控跨节点的工作负载分布。从这些分析中获得的见解可以帮助您确定 CRI-O 和 Kubelet 系统组件的运行状况,并识别过度或不平衡的资源消耗和系统不稳定的潜在来源。

该仪表板显示组织到以下类别的可视化分析小部件

关键

包含可帮助您识别可能导致系统不稳定和效率低下的节点问题的可视化效果

异常值

包含直方图,直方图可视化运行时间持续时间超出第 95 百分位的进程

平均持续时间

帮助您跟踪系统组件处理操作所需时间的变化

操作次数

显示可帮助您识别正在运行的操作数量变化的可视化效果,这反过来又可以帮助您确定系统的负载平衡和效率

访问节点指标仪表板

您可以从**管理员**角度访问节点指标仪表板。

步骤
  1. 展开**观察**菜单选项,然后选择**仪表板**。

  2. 在**仪表板**过滤器下,选择**节点集群**。

如果**关键**类别下的可视化效果中没有显示数据,则表示未检测到关键异常。仪表板按预期工作。

确定指示最佳节点资源用量的指标

节点指标仪表盘分为四大类:**关键指标**、**异常值**、**平均时长**和**操作次数**。**关键指标**类别中的指标可帮助您了解节点资源使用的最佳状态。这些指标包括:

  • 过去一天内 OOM 终止次数最多的前 3 个容器

  • 过去一小时内镜像拉取的失败率

  • 系统保留内存利用率 > 80% 的节点

  • Kubelet 系统保留内存利用率 > 50% 的节点

  • CRI-O 系统保留内存利用率 > 50% 的节点

  • 系统保留 CPU 利用率 > 80% 的节点

  • Kubelet 系统保留 CPU 利用率 > 50% 的节点

  • CRI-O 系统保留 CPU 利用率 > 50% 的节点

过去一天内 OOM 终止次数最多的前 3 个容器

**过去一天内 OOM 终止次数最多的前 3 个容器**查询会获取有关在过去一天内经历最多内存不足 (OOM) 终止次数的前三个容器的详细信息。

示例默认查询
topk(3, sum(increase(container_runtime_crio_containers_oom_count_total[1d])) by (name))

OOM 终止会迫使系统由于内存不足而终止某些进程。频繁的 OOM 终止会阻碍节点甚至整个 Kubernetes 生态系统的功能。频繁发生 OOM 终止的容器可能消耗的内存超过其应有的内存,这会导致系统不稳定。

使用此指标来识别正在频繁发生 OOM 终止的容器,并调查这些容器为何消耗过多的内存。如有必要,调整资源分配,并考虑根据其内存使用情况调整容器大小。您还可以查看**异常值**、**平均时长**和**操作次数**类别下的指标,以进一步了解节点的运行状况和稳定性。

过去一小时内镜像拉取失败率

**过去一小时内镜像拉取失败率**查询将失败的镜像拉取总数除以成功和失败的镜像拉取总数之和,以提供失败率。

示例默认查询
rate(container_runtime_crio_image_pulls_failure_total[1h]) / (rate(container_runtime_crio_image_pulls_success_total[1h]) + rate(container_runtime_crio_image_pulls_failure_total[1h]))

了解镜像拉取的失败率对于维护节点的运行状况至关重要。高失败率可能表明网络问题、存储问题、配置错误或其他可能扰乱 Pod 密集度和新容器部署的问题。

如果此查询的结果很高,请调查可能的原因,例如网络连接、远程存储库的可用性、节点存储和镜像引用的准确性。您还可以查看**异常值**、**平均时长**和**操作次数**类别下的指标,以获得进一步的见解。

系统保留内存利用率 > 80% 的节点

**系统保留内存利用率 > 80% 的节点**查询计算每个节点使用的系统保留内存的百分比。该计算将总驻留集大小 (RSS) 除以节点的总内存容量减去可分配内存。RSS 是进程占用的系统内存中驻留在主内存 (RAM) 中的那一部分。如果节点的结果值等于或超过 80% 的阈值,则会标记这些节点。

示例默认查询
sum by (node) (container_memory_rss{id="/system.slice"}) / sum by (node) (kube_node_status_capacity{resource="memory"} - kube_node_status_allocatable{resource="memory"}) * 100 >= 80

系统保留内存对于 Kubernetes 节点至关重要,因为它用于运行系统守护进程和 Kubernetes 系统守护进程。系统保留内存利用率超过 80% 表示系统和 Kubernetes 守护进程消耗的内存过多,这可能表明节点不稳定,这会影响正在运行的 Pod 的性能。过多的内存消耗会导致内存不足 (OOM) 终止程序,这些终止程序可以终止关键系统进程以释放内存。

如果此指标标记了某个节点,请识别哪些系统或 Kubernetes 进程正在消耗过多的内存,并采取适当的措施来缓解这种情况。这些措施可能包括缩减非关键进程的规模、优化程序配置以减少内存使用量或将节点系统升级到具有更大内存容量的硬件。您还可以查看**异常值**、**平均时长**和**操作次数**类别下的指标,以进一步了解节点性能。

Kubelet 系统保留内存利用率 > 50% 的节点

**Kubelet 系统保留内存利用率 > 50% 的节点**查询指示 Kubelet 的系统保留内存利用率超过 50% 的节点。该查询检查 Kubelet 进程本身在节点上消耗的内存。

示例默认查询
sum by (node) (container_memory_rss{id="/system.slice/kubelet.service"}) / sum by (node) (kube_node_status_capacity{resource="memory"} - kube_node_status_allocatable{resource="memory"}) * 100 >= 50

此查询可帮助您识别节点中可能影响节点操作的稳定性和效率的任何可能的内存压力情况。Kubelet 内存利用率持续超过系统保留内存的 50%,表明系统保留设置配置不正确,并且节点变得不稳定的风险很高。

如果突出显示此指标,请查看您的配置策略,并考虑调整系统保留设置或 Kubelet 的资源限制设置。此外,如果您的 Kubelet 内存利用率持续超过您总保留系统内存的一半,请检查**异常值**、**平均时长**和**操作次数**类别下的指标,以获得更精确诊断的更多见解。

CRI-O 系统保留内存利用率 > 50% 的节点

**CRI-O 系统保留内存利用率 > 50% 的节点**查询计算所有 CRI-O 系统保留内存使用百分比大于或等于 50% 的节点。在这种情况下,内存使用量由驻留集大小 (RSS) 定义,它是 CRI-O 系统内存中驻留在 RAM 中的那一部分。

示例默认查询
sum by (node) (container_memory_rss{id="/system.slice/crio.service"}) / sum by (node) (kube_node_status_capacity{resource="memory"} - kube_node_status_allocatable{resource="memory"}) * 100 >= 50

此查询可帮助您监控每个节点上为 CRI-O 系统保留的内存的状态。高利用率可能表示可用资源不足和潜在的性能问题。如果为 CRI-O 系统保留的内存超过建议的 50% 的限制,则表示节点上 CRI-O 使用了系统保留内存的一半。

检查内存分配和使用情况,并评估是否需要转移或增加内存资源以防止节点可能出现不稳定。您还可以检查**异常值**、**平均时长**和**操作次数**类别下的指标,以获得进一步的见解。

系统保留 CPU 利用率 > 80% 的节点

**系统保留 CPU 利用率 > 80% 的节点**查询标识系统保留 CPU 利用率超过 80% 的节点。该查询侧重于系统保留容量,以计算过去 5 分钟内 CPU 使用率,并将其与节点上可用的 CPU 资源进行比较。如果比率超过 80%,则该节点的结果将显示在此指标中。

示例默认查询
sum by (node) (rate(container_cpu_usage_seconds_total{id="/system.slice"}[5m]) * 100) / sum by (node) (kube_node_status_capacity{resource="cpu"} - kube_node_status_allocatable{resource="cpu"}) >= 80

此查询表示系统保留 CPU 使用量达到临界水平,这可能导致资源耗尽。高系统保留 CPU 使用率可能导致系统进程(包括 Kubelet 和 CRI-O)无法充分管理节点上的资源。此查询可能表示系统进程过多或 CPU 分配配置错误。

潜在的纠正措施包括将工作负载重新平衡到其他节点或增加分配给节点的 CPU 资源。调查高系统 CPU 利用率的原因,并查看**异常值**、**平均时长**和**操作次数**类别中的相应指标,以进一步了解节点的行为。

Kubelet 系统保留 CPU 利用率 > 50% 的节点

Kubelet 系统保留 CPU 利用率 > 50% 的节点 查询计算 Kubelet 系统当前从系统保留资源中使用的 CPU 百分比。

示例默认查询
sum by (node) (rate(container_cpu_usage_seconds_total{id="/system.slice/kubelet.service"}[5m]) * 100) / sum by (node) (kube_node_status_capacity{resource="cpu"} - kube_node_status_allocatable{resource="cpu"}) >= 50

Kubelet 使用系统保留的 CPU 进行自身操作和运行关键系统服务。为了保证节点的健康状况,务必确保系统保留 CPU 使用率不超过 50% 的阈值。超过此限制可能表明 Kubelet 上的利用率或负载过重,这会影响节点稳定性,并可能影响整个 Kubernetes 集群的性能。

如果此指标显示任何节点,则表示 Kubelet 和整个系统负载过重。可以通过在集群中的其他节点之间平衡负载来减少特定节点上的过载。查看异常值平均持续时间操作数量类别下的其他查询指标,以获得更多见解并采取必要的纠正措施。

CRI-O 系统保留 CPU 利用率 > 50% 的节点

CRI-O 系统保留 CPU 利用率 > 50% 的节点 查询识别在过去 5 分钟内 CRI-O 系统保留 CPU 利用率超过 50% 的节点。该查询监控 CRI-O(您的容器运行时)在每个节点上的 CPU 资源消耗。

示例默认查询
sum by (node) (rate(container_cpu_usage_seconds_total{id="/system.slice/crio.service"}[5m]) * 100) / sum by (node) (kube_node_status_capacity{resource="cpu"} - kube_node_status_allocatable{resource="cpu"}) >= 50

此查询允许快速识别可能对 Pod 性能产生负面影响的异常启动时间。如果此查询返回高值,则您的 Pod 启动时间比平时慢,这表明 kubelet、Pod 配置或资源可能存在问题。

通过检查您的 Pod 配置和分配的资源来进一步调查。确保它们与您的系统能力相符。如果您仍然看到较高的启动时间,请浏览仪表板其他类别中的指标面板,以确定系统组件的状态。

自定义仪表板查询

您可以自定义用于构建节点指标仪表板的默认查询。

步骤
  1. 选择一个指标并单击检查以导航到数据。此页面详细显示指标,包括查询结果的扩展可视化、用于分析数据的 Prometheus 查询以及查询中使用的数据子集。

  2. 对查询参数进行必要的更改。

  3. 可选:单击添加查询以对数据运行其他查询。

  4. 单击运行查询以使用您指定的参数重新运行查询。