添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
1、kube-state-metrics说明

kube-state-metrics关注于获取k8s各种资源的最新状态,如deployment或者daemonset,之所以没有把kube-state-metrics纳入到metric-server的能力中,是因为他们的关注点本质上是不一样的。metric-server仅仅是获取、格式化现有数据,写入特定的存储,实质上是一个监控系统。而kube-state-metrics是将k8s的运行状况在内存中做了个快照,并且获取新的指标,但他没有能力导出这些指标。

2、Node节点数量监控

PromQL语句:

kube_node_info{instance="10.42.4.65:8080"}

说明:可以查询到K8S集群对应多少Node节点,可以和实际的节点数比较告警,也可以制作大屏

3、集群节点状态错误

PromQL语句:

kube_node_status_condition{condition="Ready",status!="true"}==1

说明:监控集群节点状态是否错误,如何值是1就是有错误可以告警

4、集群节状态是否准备好

PromQL语句:

kube_node_status_condition{condition="Ready",status="true"} == 0

说明:监控集群节点状态是否准备好,有点像kubectl get node获取的状态

4.1、集群节点内存或磁盘资源是否短缺

PromQL语句:

kube_node_status_condition{condition=~"OutOfDisk|MemoryPressure|DiskPressure",status!="false"}==1
5、集群中存在失败的PVC监控

PromQL语句:

kube_persistentvolumeclaim_status_phase{phase="Failed"}==1
6、集群中存在启动失败的Pod监控

PromQL语句:

kube_pod_status_phase{phase=~"Failed|Unknown"}==1
7、最近30分钟内有Pod容器重启监控

PromQL语句:

changes(kube_pod_container_status_restarts_total[30m])
8、节点CPU请求总核数(单位cores)

PromQL语句:

sum(kube_pod_container_resource_requests_cpu_cores{})

说明:监控容器请求的CPU内核数

9、节点CPU限制总核数

PromQL语句:

sum(kube_pod_container_resource_limits_cpu_cores{})
10、节点CPU总量

PromQL语句:

sum(kube_node_status_capacity_cpu_cores{}) 
11、节点内存请求值(bytes 1024/1024/1024后为GB)

PromQL语句:

sum(kube_pod_container_resource_requests_memory_bytes{})/1024/1024/1024
12、节点内存限制值

PromQL语句:

sum(kube_pod_container_resource_limits_memory_bytes{})
13、节点内存总量

PromQL语句:

sum(kube_node_status_capacity_memory_bytes{}/1024/1024/1024)
14、节点不可用监控

PromQL语句:

sum(kube_node_spec_unschedulable{node=~"$node"})
15、Pod 的生命周期监控

PromQL语句:

kube_pod_status_phase{phase=~"Pending|Running"} == 1

说明:kube_pod_status_phase可以统计Pod的数量,phase的值:Running(运行中)Pod 已经绑定到了某个节点,Pod 中所有的容器都已被创建。至少有一个容器仍在运行,或者正处于启动或重启状态。官网对Pod 的生命周期说明:
https://kubernetes.io/zh/docs/concepts/workloads/pods/pod-lifecycle/
PromQL语句:

sum(kube_pod_status_phase{namespace=~".*", phase="Pending"}==1)

说明:监控悬决的Pods数量;Pod 已被 Kubernetes 系统接受,但有一个或者多个容器尚未创建亦未运行。此阶段包括等待 Pod 被调度的时间和通过网络下载镜像的时间
PromQL语句:

sum(kube_pod_status_phase{namespace=~".*", phase="Failed"}==1)

说明:监控成功终止的Pods数量;Pod 中的所有容器都已终止,并且至少有一个容器是因为失败终止。也就是说,容器以非 0 状态退出或者被系统终止
PromQL语句:

sum(kube_pod_status_phase{namespace=~".*", phase="Succeeded"}==1)

说明:监控成功终止的Pods数量;Pod 中的所有容器都已成功终止,并且不会再重启
PromQL语句:

sum(kube_pod_status_phase{namespace=~".*", phase="Unknown"}==1)

说明:监控未知的Pods数量;因为某些原因无法取得 Pod 的状态。这种情况通常是因为与 Pod 所在主机通信失败

16、监控K8S已运行的容器

PromQL语句:

kube_pod_container_status_running{namespace=~".*"}==1

说明:监控正在运行容器数量;可以绘制K8S集群的容器数量

17、监控K8S等待创建的容器

PromQL语句:

kube_pod_container_status_waiting{namespace=~".*"}==1

说明:监控K8S等待创建的容器;可以监控容器

18、监控K8S停止的容器

PromQL语句:

kube_pod_container_status_terminated{namespace=~".*"}==1

说明:监控K8S停止的容器;可以监控容器

19、监控作业中心成功数

PromQL语句:

sum(kube_job_status_succeeded{namespace=~".*"})

说明:监控作业中心成功数;可以监控作业执行的成功数

20、监控每个部署的副本数

PromQL语句:

sum(kube_deployment_status_replicas{namespace=~".*"})

说明:kube_deployment_status_replicas 表示每个部署的副本数,这值是Status.Replicas;
kube_deployment_spec_replicas表示部署所需的吊舱数。这值是Spec.Replicas资源定义副本数
kube_deployment_status_replicas_available 正在运行副本数
kube_deployment_status_replicas_updated 更新的副本数
kube_deployment_status_replicas_unavailable 不可用的副本数

21、集群磁盘使用率

PromQL语句:

(sum (node_filesystem_size_bytes{nodename=~".*"}) - sum (node_filesystem_free_bytes{nodename=~".*"})) / sum (node_filesystem_size_bytes{nodename=~".*"})

说明:监控K8S集群磁盘使用率

22、集群监控磁盘卷可用空间的

PromQL语句:

kubelet_volume_stats_available_bytes / kubelet_volume_stats_capacity_bytes * 100 < 10

说明:监控K8S监控磁盘卷可用空间的,小于10就告警

23、集群监控预测磁盘卷7天是否满

PromQL语句:

predict_linear(kubelet_volume_stats_available_bytes[1h], 7 * 24 * 3600) < 0

说明:监控K8S集群监控预测磁盘卷7天是否满,小于0就告警

24、集群监控PV使用状态监控

PromQL语句:

kube_persistentvolume_status_phase{phase=~"Failed|Pending"} > 0
  • kube_persistentvolume_status_phase:PV使用状态

说明:监控K8S集群监控PV使用状态,大于0就告警

24、集群监控StatefulSet是否down

PromQL语句:

(kube_statefulset_status_replicas_ready / kube_statefulset_status_replicas_current) != 1

说明:监控K8S集群StatefulSet是否down,不于1就告警

25、集群监控HPA动态伸缩异常

PromQL语句:

(sum(kube_hpa_status_condition{condition="ScalingLimited",status="true"}) by (hpa,namespace)) == 1

说明:监控K8S集群HPA动态伸缩异常,等于1就告警

25、集群监控当前5分钟POD重启的次数

PromQL语句:

rate(kube_pod_container_status_restarts_total[5m]) * 60 * 5 >2

说明:监控K8S集群监控当前5分钟POD重启的次数,大于2就告警

25、集群监控replicaset副本数状态

PromQL语句:

kube_replicaset_spec_replicas != kube_replicaset_status_ready_replicas

说明:监控K8S集群集群监控replicaset副本数状态,不等异常
同理:

kube_deployment_spec_replicas != kube_deployment_status_replicas_available
kube_statefulset_status_replicas_ready != kube_statefulset_status_replicas
kube_deployment_status_observed_generation != kube_deployment_metadata_generation
kube_statefulset_status_observed_generation != kube_statefulset_metadata_generation
	Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。
	<br /></p>
	Kubernetes一个核心的特点就是能够自主的管理容器来保证云平台中的容器按照用户的期望状态运行着(比如用户想让apache一直运行,用户不需要关心怎么去做,Kubernetes会自动去监控,然后去重启,新建,总之,让apache一直提供服务),管理员可以加载一个微型服务,让规划器来找到合适的位置,同时,Kubernetes也系统提升工具以及人性化方面,让用户能够方便的部署自己的应用(就像canary deployments)。
	<br /></p>
	容器编排调度引擎 —— k8s 的好处
	简化应用部署
	提高硬件资源利用率
	健康检查和自修复
	自动扩容缩容
	服务发现和负载均衡
	<br /></p>
	通过本教程的学习,你可以掌握K8S的简介、K8S的集群搭建(三种部署方式)、K8S企业应用案例(
	SpringBoot和K8S的实战、SpringCloud的客户端案例等),胜任企业级的开发工作。
	<span style="font-size:16px;"></span><span style="font-size:20px;"><strong>一、prometheus简介</strong></span> 
	<span style="font-size:16px;"><strong> </strong></span> 
	<strong> Prometheus是一个开源的系统监控和告警系统,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF维护管理的项目,在kubernetes容器管理系统中,通常会搭配prometheus进行监控,prometheus支持多种exporter采集数据,还支持通过pushgateway进行数据上报,<span style="color:#494949;">Prometheus再</span><span style="color:#494949;">性能上可支撑上万台规模的集群。</span> </strong> 
<strong> </strong> 
	<strong> <span style="font-size:20px;"><strong><span style="color:#494949;">二、prometheus架构图</span></strong></span> </strong> 
<strong> </strong> 
	<strong><span style="color:#494949;"><img src="https://img-bss.csdn.net/202004201352387874.png" alt="" /><br /></span> </strong> 
<strong> </strong> 
	<strong> <span style="font-size:20px;"><strong>三、prometheus组件介绍</strong></span> </strong> 
<strong> </strong> 
<p style="text-align:left;">
	<strong> <span style="font-size:16px;color:#323232;"></span> </strong> 
<strong> </strong> 
<p style="text-align:left;">
	<strong> <span style="font-size:16px;color:#323232;">1.Prometheus Server: 用于收集和存储时间序列数据。</span> </strong> 
<strong> </strong> 
<p style="text-align:left;">
	<strong> <span style="font-size:16px;color:#323232;">2.Client Library: 客户端库,检测应用程序代码,当Prometheus抓取实例的HTTP端点时,客户端库会将所有跟踪的metrics指标的当前状态发送到prometheus server端。</span> </strong> 
<strong> </strong> 
<p style="text-align:left;">
	<strong> <span style="font-size:16px;color:#323232;">3.Exporters: prometheus支持多种exporter,通过exporter可以采集metrics数据,然后发送到prometheus server端</span> </strong> 
<strong> </strong> 
<p style="text-align:left;">
	<strong> <span style="font-size:16px;color:#323232;">4.Alertmanager: 从 Prometheus server 端接收到 alerts 后,会进行去重,分组,并路由到相应的接收方,发出报警,常见的接收方式有:电子邮件,微信,钉钉, slack等。</span> </strong> 
<strong> </strong> 
<p style="text-align:left;">
	<strong> <span style="font-size:16px;color:#323232;">5.Grafana:监控仪表盘</span> </strong> 
<strong> </strong> 
<p style="text-align:left;">
	<strong> <span style="font-size:16px;color:#323232;">6.pushgateway: 各个目标主机可上报数据到pushgatewy,然后prometheus server统一从pushgateway拉取数据。</span> </strong> 
<strong> </strong> 
	<strong> <span style="font-size:20px;"><strong><span></span></strong></span> </strong> 
<strong> </strong> 
	<strong> <span style="font-size:20px;"><strong><span>四、课程亮点</span></strong></span><strong><span style="font-size:16px;"><br /></span></strong> </strong> 
<strong> </strong> 
	<img src="https://img-bss.csdn.net/202004201352522795.png" alt="" /></p>
<strong> </strong> 
	<strong> <strong><span style="font-size:16px;"></span></strong> </strong> 
<strong> </strong> 
	<strong> <span style="font-size:20px;"><strong><span></span></strong></span><span style="font-size:20px;"><strong><span>五、效果图展示</span></strong></span></strong> 
	<strong><span style="font-size:20px;"><strong><span><img src="https://img-bss.csdn.net/202004201353077268.png" alt="" /><br /></span></strong></span></strong>
<strong> </strong> 
	<strong><span style="font-size:20px;"><strong><img src="https://img-bss.csdn.net/202004201353245111.png" alt="" /><br /></strong></span></strong>
	<strong><span style="font-size:20px;"><strong><img src="https://img-bss.csdn.net/202004201353384468.png" alt="" /><br /></strong></span></strong>
	<strong><span style="font-size:20px;"><strong><img src="https://img-bss.csdn.net/202004201354069425.png" alt="" /><br /></strong></span></strong>
	<strong><span style="font-size:20px;"><strong><img src="https://img-bss.csdn.net/202004201354193720.png" alt="" /><br /></strong></span></strong>
	<strong> <span style="font-size:20px;"><strong>六、讲师简介</strong></span> </strong> 
<strong> </strong> 
	<strong> <span style="font-size:16px;"><span style="color:#000000;">先超(lucky)</span><span style="color:#000000;">:</span></span><span style="color:#000000;font-size:16px;">高级运维工程师、资深DevOps工程师,在互联网上市公司拥有多年一线运维经验,主导过亿级pv项目的架构设计和运维工作</span><span style="color:#000000;font-size:16px;"><br /></span> </strong> 
<strong> </strong> 
	<strong> <span style="font-size:16px;"><span style="color:#000000;font-size:16px;">主要研究方向:</span><span style="color:#000000;font-size:16px;"><br /></span></span> </strong> 
<strong> </strong> 
	<strong> <span style="font-size:16px;"><span style="color:#000000;font-size:16px;">1.云计算方向:</span><span style="font-size:40px;color:#000000;"></span><span style="color:#000000;font-size:16px;">容器</span></span> </strong> 
<strong> </strong> 
	<strong> <span style="font-size:16px;"><span style="color:#000000;font-size:16px;">(kubernetes、docker),虚拟化(kvm、Vmware vSphere),微服务(istio),PaaS(openshift),IaaS(openstack)等</span><span style="font-size:27px;color:#000000;"><br /></span><span style="color:#000000;font-size:16px;">2.系统/运维方向:</span><span style="font-size:40px;color:#000000;"></span><span style="font-size:39px;color:#000000;"></span><span style="color:#000000;font-size:16px;">linux系统下的常用组件(nginx,tomcat,elasticsearch,zookeeper,kafka等),DevOps(Jenkins+gitlab+sonarqube+nexus+k8s),CI/CD,监控(zabbix、prometheus、falcon)等</span><span style="font-size:39px;color:#000000;"><br /></span></span> </strong> 
<strong> </strong> 
	<strong> <span style="font-size:39px;color:#000000;"></span> </strong> 
<strong></strong><strong></strong><strong></strong>
	<strong><span style="font-size:18px;">七、课程大纲</span></strong>
	<strong><span style="font-size:18px;"><img src="https://img-bss.csdn.net/202004201355254800.png" alt="" /><br /></span></strong>
	<strong><span style="font-size:24px;"><img src="https://img-bss.csdn.net/202004201355386613.png" alt="" /><br /></span></strong>
	<strong><span style="font-size:24px;"><img src="https://img-bss.csdn.net/202004201356062136.png" alt="" /><br /></span></strong>
	<strong><span style="font-size:24px;"><img src="https://img-bss.csdn.net/202004201356218012.png" alt="" /><br /></span></strong>
	<span style="font-size:16px;">本套课程会带领大家学习kubernetes1.16.3,kubernetes1.17.4高可用集群的安装,通过keepalive+lvs实现master节点apiserver的高可用,同时会安装dashboard和metrics等附加组件<strong></strong></span> 
				
K8S新的资源指标获取工具:metrics-server 自定义指标的监控工具:prometheus,k8s-prometheus-adapter K8S新一代架构 核心指标流水线:由kubelet、metrics-server以及由API server提供的api组成;CPU累积使用率、内存的实时使用率、pod的资源占用率及容器的磁盘占用率; 监控流水线:用于从系统收集各种指标数据并提供给终端用...
List<Node> listNode=client.nodes().list().getItems(); //根据节点名称得到节点对象 Node selectedNode = client.nodes().withName(nodeName).get(); String nodeName = selectedNode.getMetadata().getName()...
参考yaml文件:https://github.com/kubernetes/kube-state-metrics/tree/master/kubernetes 探针的作用:能够查看k8s上诸如Pod、Deployment、Daemonset、StatefulSet等资源对象的相关指标。 遇到的问题: 1、已经将探针升级到最新版本。在查看最新释放版本信息的过程中,能够查询到部分新释放的指标,但并不...
原文:https://mp.weixin.qq.com/s/176eyFBknzdA5wpiJrxDSg 已经有了 cadvisor、heapster、metric-server,几乎容器运行的所有指标都能拿到,但是下面这种情况却无能为力: 我调度了多少个 replicas?现在可用的有几个? 多少个 Pod 是 running/stopped/terminated ...
容器监控之kube-state-metrics 参考:https://github.com/kubernetes/kube-state-metrics/tree/master/kubernetes https://www.kubernetes.org.cn/5435.html metric-server(或heapster)是从api-server中获取...
kubernetes之kube-state-metrics 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第三章 kubernetes监控之kube-state-metrics使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录kubernetes之kube-state-metrics前言一、kube-state-metrics与metrics-server对比二、kubernetes安装kube-state-metrics1.下载yaml2.部署3.
都是用prometheus监控k8s的各项资源, 如api server, namespace, pod, node等。 那如果是自己的业务pod上的自定义metrics呢? 比如,一个业务pod开放了/xxx/metrics, 那么,如果用prometheus来抓取呢? 这里,我们就会用到kubernetes-pods这样一个job。 然后,在业... kubelet的节点使用cAdvisor提供的metrics接口获取该节点所有Pod和容器相关的性能指标数据。 指标接口:https://NodeIP:10250/metrics/cadvisor 使用node_exporter收集器采集节点资源利用率。 项目地址:https://github.com/prometheus/node_exporter K8s资源对象 kube-state-metrics采集了k8s中各种资源对象.