我们面临一个有关监控卷存储的问题。
我们使用指标“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 文档