ボリュームストレージの監視について1つの質問に直面しています。
メトリック「kubelet_volume_stats_used_bytes」と「kubelet_volume_stats_capacity_bytes」を使用します。私たちのラボでは、ポッドに100を超えるボリュームがマウントされており、これらのボリュームの中にGlusterfsストレージによって作成された14のボリュームがあり、残りのボリュームは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
KubernetesAPIからメトリックをカールしようとします
# 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にそれらを提供させるにはどうすればよいですか?
前もって感謝します。
ところで-Kubernetesのドキュメントにも章があることに気付いたのでCephについてはわかりません ストレージプロビジョナー そしてこれはそれが言っていることです、
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"}
これはKubernetesv 1.13 +で機能するようです。
これがGitHubの問題です ceph:flexvolumeドライバー#3128のメトリックを追加 。
そして ここ はそれを設定する方法を説明するコメントです。
また、Prometheusを使用することもできます。これは十分に文書化されており、 rook docs で説明されています。