KubeCon 2021 NA Recap - Scheduler拡張事例最前線 / Kubernetes Meetup Tokyo #47 / #k8sjp
Local ephemeral-storage のメトリクスを取得するのに kube-summary-exporter がべんり / Kubernetes Meetup Tokyo #47 / #k8sjp
1. Lightning Talk at Kubernetes Meetup Tokyo #47(2021/11/25)
SUDA Kazuki, Preferred Networks, Inc.
@superbrothers
Local ephemeral-storage の
メトリクスを取得するのに
kube-summary-exporter がべんり
2. @superbrothers
!
SUDA Kazuki / @superbrothers
▶ Preferred Networks, Inc. / エンジニア
▶ Kubernetes Meetup Tokyo, Prometheus Meetup Tokyo ほか、共同主催者
▶ Cloud Native Ambassador (CNCF)
▶ 「Kubernetes実践⼊⾨」、「みんなのDocker/Kubernetes」共著書
▶ 「⼊⾨ Prometheus」、「Kubernetes で実践するクラウドネイティブ DevOps」監訳書
2
3. @superbrothers
!
なんかいろんなノードで次々に Pod が evict されてる😱
1. ある Pod が Local ephemeral-storage をめっちゃ使う
2. ノードのローカルストレージが圧迫される
3. ノードが DiskPressure condition になる
4. 問題の Pod を含むそのノードで実⾏されている Pods が追い出される(evict)
5. 問題の Pod が他のノードにスケジュールされ、1 に戻る
3
4. @superbrothers
!
Local ephemeral storage ってなんだっけ
Pod が使う次のストレージ領域のこと。
▶ emptyDir ボリューム
▶ ログ出⼒
▶ コンテナの書き込み可能レイヤ
▶ /etc/hosts
Pod がログを吐いたり(stdout/stderr)、emptyDir やローカルにファイルを作成すると
ノードのローカルストレージを消費する。
4
9. @superbrothers
!
kube-summary-exporter
▶ Kubelet Summary API を公開してくれる Prometheus exporter を探すと
utilitywarehouse/kube-summary-exporter が⾒つかったが、Local ephemeral-storage を
含んでなかったので、PR を作成してマージしてもらった💪
▶ あまりメンテされておらず、マージされた PR を含むリリースもまだないので、
使うには⾃分でビルドが必要だったり😓
9
# HELP kube_summary_pod_ephemeral_storage_used_bytes Number of bytes of Ephemeral storage that are consumed by the pod
# TYPE kube_summary_pod_ephemeral_storage_used_bytes gauge
kube_summary_pod_ephemeral_storage_used_bytes{namespace="kube-system",pod="coredns-56558f9fc7-l8jcl"} 2.2913024e+07
kube_summary_pod_ephemeral_storage_used_bytes{namespace="kube-system",pod="coredns-56558f9fc7-wdlgv"} 2.1692416e+07
kube_summary_pod_ephemeral_storage_used_bytes{namespace="kube-system",pod="node-problem-detector-92jqg"} 7.8163968e+07
kube_summary_pod_ephemeral_storage_used_bytes{namespace="logging",pod="fluent-bit-gscbq"} 77824
kube_summary_pod_ephemeral_storage_used_bytes{namespace="monitoring",pod="node-exporter-ffcmv"} 126976
12. @superbrothers
!
実は Kubelet Summary API は廃⽌予定になっているんだけど...
代替⼿段がなく、廃⽌されることが決まっているだけの状態。
> Kubelet Summary API, is currently only planned for deprecation, this hasn't yet happened as noone
proposed a working alternative. When it will happen it will be clearly announced and it will take at least 3
releases before it is removed. Meaning you will have around a year to adapt.
https://github.com/kubernetes/kubernetes/issues/106080
動向が気になる⽅は下記イシューを購読
https://github.com/kubernetes/kubernetes/issues/68522
12