最近更新时间:2024.02.28 20:04:51
首次发布时间:2022.10.14 10:30:20
容器服务支持对集群和命名空间维度进行监控。本文为您介绍如何配置和查看集群的监控信息。
容器服务集群已接入托管 Prometheus,并同步安装了 node-exporter 组件。详情请参见 接入托管 Prometheus。
当您将容器服务集群正确接入托管 Prometheus,并安装了对应的组件后,需要配置对应的采集规则,才能正确采集指标。
说明
您可以查看集群整体的监控信息,包括:集群节点信息(节点数量、未就绪节点数)、集群内存信息(内存使用量、内存使用率)、集群 CPU 信息(CPU 使用量、CPU 使用率)等。支持设置查询的时间段,并指定刷新方式(手动刷新、自动刷新)。
您可以查看集群命名空间维度的监控信息,包括:命名空间内 NotReady 状态的 Deploment、Statefulset、DaemonSet 数量,命名空间内的内存使用、CPU 使用和 PVC 使用信息。支持设置查询的时间段,并指定刷新方式(手动刷新、自动刷新)。
集群基础资源监控大盘的指标清单如下表所示。
大盘分类 | 大盘名称 | PromQL 语句 |
---|---|---|
集群监控 | 节点数量 | count(kube_node_info{cluster="$ClusterId",kernel_version!=""}) |
PIDPressure 节点数量 | count(kube_node_status_condition{cluster="$ClusterId",status="true",condition="PIDPressure"}==1) or vector(0) | |
MemoryPressure 节点数量 | count(kube_node_status_condition{cluster="$ClusterId",status="true",condition="MemoryPressure"}==1) or vector(0) | |
Not Ready 节点数量 | count(kube_node_info{cluster="$ClusterId",kernel_version!=""})-count(kube_node_status_condition{cluster="$ClusterId",condition="Ready", status="true",node!~"vci.*"} == 1) | |
DiskPressure 节点数量 | count(kube_node_status_condition{cluster="$ClusterId",status="true",condition="DiskPressure"}==1) or vector(0) | |
NetworkUnavailable 节点数量 | count(kube_node_status_condition{cluster="$ClusterId",status="true",condition="NetworkUnavailable"}==1) or vector(0) | |
集群内存使用 | sum(kube_pod_container_resource_requests{cluster="$ClusterId",resource="memory"})by(cluster) | |
sum(kube_pod_container_resource_limits{cluster="$ClusterId",resource="memory"})by(cluster) | ||
sum(kube_node_status_capacity{cluster="$ClusterId",resource="memory",node!~"vci.*"}) | ||
sum(node_memory_MemTotal_bytes{cluster="$ClusterId"}-node_memory_MemAvailable_bytes{cluster="$ClusterId"})by(cluster) | ||
集群 CPU 使用 | sum(kube_pod_container_resource_requests{cluster="$ClusterId",resource="cpu"})by(cluster) | |
sum(kube_pod_container_resource_limits{cluster="$ClusterId",resource="cpu"})by(cluster) | ||
sum(kube_node_status_capacity{cluster="$ClusterId",resource="cpu",node!~"vci.*"})by(cluster) | ||
sum (irate(node_cpu_seconds_total{cluster="$ClusterId",mode="user"}[5m])) by(cluster) | ||
节点内存使用率 Top 10 | topk(10,(node_memory_MemTotal_bytes{cluster="$ClusterId"}-node_memory_MemAvailable_bytes{cluster="$ClusterId"})/node_memory_MemTotal_bytes{cluster="$ClusterId"})*100 | |
节点 CPU 使用率 Top 10 | topk(10,sum(irate(node_cpu_seconds_total{cluster="$ClusterId",mode="user"}[5m]))by(node)/count(count(node_cpu_seconds_total{cluster="$ClusterId"})by(cpu,node))by(node)*100) | |
节点磁盘使用率 Top 10 | topk(10,sum(node_filesystem_size_bytes{cluster=~"$ClusterId",device!~'rootfs'}-node_filesystem_avail_bytes{cluster=~"$ClusterId",device!~'rootfs',fstype!~'tmpfs'})by(node)/sum(node_filesystem_size_bytes{cluster=~"$ClusterId",device!~'rootfs'})by(node)*100) | |
节点磁盘 Read 速率 Top 10 | topk(10,sum(rate(node_disk_read_bytes_total{cluster=~"$ClusterId",device=~"[a-z]*[a-z]"}[5m]))by(node)) | |
节点磁盘 Write 速率 Top 10 | topk(10,sum(rate(node_disk_written_bytes_total{cluster=~"$ClusterId",device=~"[a-z]*[a-z]"}[5m]))by(node)) | |
节点网络流量(In)Top 10 | topk(10,sum(rate(node_network_receive_bytes_total{cluster=~"$ClusterId"}[5m]))by(node)) | |
节点网络流量(Out)Top 10 | topk(10,sum(rate(node_network_transmit_bytes_total{cluster=~"$ClusterId"}[5m]))by(node)) | |
节点 Socket 数 Top 10 | topk(10,node_sockstat_TCP_alloc{cluster=~"$ClusterId"}) | |
容器组 CPU 使用 Top 10 | topk(10,sum(rate(container_cpu_usage_seconds_total{cluster="$ClusterId",container!=""}[5m]))by(pod)) | |
容器组 CPU 使用率 Top 10(占 requests) | topk(10,sum(rate(container_cpu_usage_seconds_total{cluster="$ClusterId",container!=""}[5m]))by(pod)/sum(kube_pod_container_resource_requests{cluster="$ClusterId",resource="cpu"})by(pod)*100) | |
容器组 CPU 使用率 Top 10(占 limits) | topk(10,sum(rate(container_cpu_usage_seconds_total{cluster="$ClusterId",container!=""}[5m]))by(pod)/sum(kube_pod_container_resource_limits{cluster="$ClusterId",resource="cpu"})by(pod)*100) | |
容器组内存使用 Top 10 | topk(10,sum(container_memory_working_set_bytes{cluster="$ClusterId",container!=""})by (pod)) | |
容器组内存使用率 Top 10(占 requests) | topk(10,sum(container_memory_working_set_bytes{cluster="$ClusterId",container!=""})by(pod)*100/sum(kube_pod_container_resource_requests{cluster="$ClusterId",container!="",resource="memory",unit="byte"})by(pod)) | |
容器组内存使用率 Top 10(占 limits) | topk(10,sum(container_memory_working_set_bytes{cluster="$ClusterId",container!=""})by(pod)*100/sum(kube_pod_container_resource_limits{cluster="$ClusterId",container!="",resource="memory",unit="byte"})by(pod)) | |
容器组网络流量(In)Top 10 | topk(10,sum(rate(container_network_receive_packets_total{cluster=~"$ClusterId",pod!=""}[5m]))by(pod)) | |
容器组网络流量(Out)Top 10 | topk(10,sum(rate(container_network_transmit_packets_total{cluster=~"$ClusterId",pod!=""}[5m]))by(pod)) | |
容器组 Socket 连接数 Top 10 | topk(10,sum(container_sockets{cluster="$ClusterId",pod!=""})by(pod)) | |
集群 Namespace 监控 | NotReady Deployment | count(sum(kube_deployment_spec_replicas{cluster="$ClusterId",namespace="$Namespace"}-kube_deployment_status_replicas_ready{cluster="$ClusterId",namespace="$Namespace"} )by(deployment) !=0)or vector(0) |
NotReady Statefulset | count(sum(kube_statefulset_replicas{cluster="$ClusterId",namespace="$Namespace"}-kube_statefulset_status_replicas_ready{cluster="$ClusterId",namespace="$Namespace"} )by(statefulset)!=0)or vector(0) | |
NotReady DaemonSet | count(sum(kube_daemonset_status_number_unavailable{cluster="$ClusterId",namespace="$Namespace"})by(daemonset)!=0)or vector(0) | |
内存使用 | sum(kube_pod_container_resource_requests{resource="memory",cluster="$ClusterId",namespace=~"$Namespace"})by(namespace) | |
sum(kube_pod_container_resource_limits{resource="memory",cluster="$ClusterId",namespace=~"$Namespace"})by(namespace) | ||
sum(rate(container_memory_working_set_bytes{cluster="$ClusterId",namespace=~"$Namespace"}[5m]))by(namespace) | ||
CPU 使用 | sum(kube_pod_container_resource_requests{resource="cpu",cluster="$ClusterId",namespace=~"$Namespace"})by(namespace) | |
sum(kube_pod_container_resource_limits{resource="cpu",cluster="$ClusterId",namespace=~"$Namespace"})by(namespace) | ||
sum(rate(container_cpu_usage_seconds_total{cluster="$ClusterId",namespace=~"$Namespace"}[5m]))by(namespace) | ||
PVC 使用 | sum(kube_persistentvolumeclaim_resource_requests_storage_bytes{cluster="$ClusterId",namespace="$Namespace"})by(namespace) |
说明
如果您需要在托管 Prometheus 中的 Explore 功能或告警中心使用上述 PromQL 语句查看具体的指标或配置告警,请修改或删除语句中关于集群、节点、容器组的变量。例如:将 cluster=~"$Cluster"
参数中的$Cluster
变量修改为具体的集群 ID ,或直接删除该参数。
您可以使用托管 Prometheus 的 Explore 功能来快速查询和展示指标数据。详情请参见 指标查询。
您可以在托管 Prometheus 的告警中心配置集群相关告警,包括: