指标“kubelet_volume_*”可以从 Ceph 创建的卷中获取值吗?

指标“kubelet_volume_*”可以从 Ceph 创建的卷中获取值吗?

我们面临一个有关监控卷存储的问题。

我们使用指标“kubelet_volume_stats_used_bytes”和“kubelet_volume_stats_capacity_bytes”。在我们的实验室中,我们有超过 100 个卷安装到 pod,其中有 14 个卷由 Glusterfs 存储创建,其余卷由 Ceph 提供。

$ kubectl get sc
NAME                            PROVISIONER                    AGE
default                         ceph.rook.io/block             166d
glusterfs-storageclass          kubernetes.io/glusterfs        166d
local-storage                   kubernetes.io/no-provisioner   166d
non-repl                        ceph.rook.io/block             166d
rook-ceph-block-rep (default)   ceph.rook.io/block             166d

我们尝试从 Kubernetes API 获取指标

# curl -k -s -H "Authorization: Bearer <token>" https://kubernetes.default.svc:443/api/v1/nodes/<hostname>/proxy/metrics 2>&1 |grep kubelet_volume_stats_used_bytes

不幸的是,在所有节点中,我们只能从这 14 个 Glusterfs 卷获取信息,其余卷(由 Ceph 创建)没有指标

那么,是否可以从 Ceph 创建的卷中获取指标?如果可能,我们如何让 Kubernetes 提供它们?

提前致谢。

顺便说一句 - 我们不确定 Ceph 的情况,因为我们还注意到 Kubernetes 文档中有一章存储供应器经文上是这么说的,

Volume Plugin   Internal Provisioner    Config Example
CephFS          -                       -
GlusterFS       ✓                       Glusterfs

不知道是不是这个原因。Kubernetes 版本 1.12.3

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.3", 
GitCommit:"435f92c719f279a3a67808c80521ea17d5715c66", GitTreeState:"clean", 
BuildDate:"2018-11-26T12:57:14Z", GoVersion:"go1.10.4", Compiler:"gc", 
Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.3", 
GitCommit:"435f92c719f279a3a67808c80521ea17d5715c66", GitTreeState:"clean", 
BuildDate:"2018-11-26T12:46:57Z", GoVersion:"go1.10.4", Compiler:"gc", 
Platform:"linux/amd64"}

答案1

这似乎在 Kubernetes 上有效版本 1.13+

这是它的 GitHub 问题ceph:为 flexvolume 驱动程序添加指标 #3128

这里是描述如何设置的注释。

你也可以使用 Prometheus。这有很好的文档和描述,rook 文档

相关内容