【k8s系列】kube-state-metrics中kube_endpoint_address指标

文章目录

    • 背景
    • 环境
    • 操作
      • 方法1:kube_endpoint_address_not_ready选择大于0的
        • 验证方式1
        • 验证方式2
      • 方法2:kube_endpoint_address_available选小于0的
      • 方法3:kube_endpoint_address{ready="false"}选大于0的
    • 解释
    • 参考

author: ningan123
date: 2022-12-27 10:13
updated: 2022-12-27 12:12

背景

想要一个指标来告警k8s中endpoints中没有ip的项

类似于下面图中,有些ep是没有ip的,想要把这些项及时告警,及时处理查看原因

【k8s系列】kube-state-metrics中kube_endpoint_address指标_第1张图片

可以看到,总共有7个ep,有4个是正常的,有3个是异常的(kube-dns、kubernetes-dashboard和metrics-server)

环境

kube-state-metrics版本:v2.6.0

操作

# HELP kube_endpoint_address_available (Deprecated since v2.6.0) Number of addresses available in endpoint.
# TYPE kube_endpoint_address_available gauge

# HELP kube_endpoint_address_not_ready (Deprecated since v2.6.0) Number of addresses not ready in endpoint
# TYPE kube_endpoint_address_not_ready gauge

# HELP kube_endpoint_address Information about Endpoint available and non available addresses.
# TYPE kube_endpoint_address gauge

方法1:kube_endpoint_address_not_ready选择大于0的

总共有7条,大于0的就是异常的

【k8s系列】kube-state-metrics中kube_endpoint_address指标_第2张图片

进而,我们可以看到,kube-dns显示的是3,而kubernetes-dashboard和metrics-server显示的是1,这个是为什么呢?

验证方式1

通过标题背景中的图片可以看到,ep中显示的是ip:port,我们可以看下这几个ep的具体细节:
如下图,kube-dns有1个ip,3个端口;kubernetes-dashboard有1个ip,1个端口;metrics-server有1个ip,1个端口

【k8s系列】kube-state-metrics中kube_endpoint_address指标_第3张图片

【k8s系列】kube-state-metrics中kube_endpoint_address指标_第4张图片

【k8s系列】kube-state-metrics中kube_endpoint_address指标_第5张图片

验证方式2

我们找来另一个集群k2,部署方式和k是一样的。
查看k2的这3个ep,可以看到分别是3、1、1.

image.png

方法2:kube_endpoint_address_available选小于0的

总共有7条,小于0的就是异常的

【k8s系列】kube-state-metrics中kube_endpoint_address指标_第6张图片

nginx那为什么显示的是3呢?
查看该集群,可以看到nginx下面有3项

image.png

方法3:kube_endpoint_address{ready=“false”}选大于0的

因为选择的是ready=“false”,所以显示出来的就是异常的

【k8s系列】kube-state-metrics中kube_endpoint_address指标_第7张图片

我们再选择一下ready=“true”
可以看到有6项,这是为什么呢?
仔细一看,kube_endpoint_address指标加入了ip的label,nginx因为有3个ip,所以被拆成了3项

【k8s系列】kube-state-metrics中kube_endpoint_address指标_第8张图片

解释

v2.6.0加入了新的指标kube_endpoint_address
详情参考:https://github.com/kubernetes/kube-state-metrics/releases

【k8s系列】kube-state-metrics中kube_endpoint_address指标_第9张图片

我们跳到1761,可以看到kube_endpoint_address将替代kube_endpoint_address_available和kube_endpoint_address_not_ready,怪不得用2.6.0采集出来的指标,显示kube_endpoint_address_available和kube_endpoint_address_not_ready Deprecated since v2.6.0呢

详情见:https://github.com/kubernetes/kube-state-metrics/pull/1761

【k8s系列】kube-state-metrics中kube_endpoint_address指标_第10张图片

结束~

寄语:你走的每一步都算数!

参考

https://github.com/kubernetes/kube-state-metrics/releases
https://github.com/kubernetes/kube-state-metrics/pull/1761

你可能感兴趣的:(云计算,kubernetes,运维,java)