Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Kubernetesストレージ可用性の監視ツール「pie」のご紹介
Cybozu
PRO
November 24, 2022
Technology
0
51
Kubernetesストレージ可用性の監視ツール「pie」のご紹介
Kubernetes Meetup Tokyo #54の発表資料です。
https://k8sjp.connpass.com/event/264501/
Cybozu
PRO
November 24, 2022
Tweet
Share
More Decks by Cybozu
See All by Cybozu
テキストマイニングを使って 今年1年のレビュー内容をふりかえってみた話
cybozuinsideout
PRO
0
170
Waffle Festival「ITのすゝめ~文系からITキャリアへ」
cybozuinsideout
PRO
1
170
サイボウズのプロダクトデザイナーについて
cybozuinsideout
PRO
0
670
jsconf-sponsor-lt.pdf
cybozuinsideout
PRO
0
4.1k
kintone UXリサーチャーのお仕事紹介
cybozuinsideout
PRO
1
830
サイボウズのUXリサーチャーについて
cybozuinsideout
PRO
0
400
サイボウズの日英翻訳/ローカライズ担当について
cybozuinsideout
PRO
0
460
Garoon 開発チーム / Garoon development team
cybozuinsideout
PRO
0
1.1k
サイボウズの QAエンジニアについて / about cybozu QA
cybozuinsideout
PRO
0
700
Other Decks in Technology
See All in Technology
ユーザーテストガイドライン VERSION 2.0
kouzoukaikaku
0
1.4k
Multi-Cloud Gatewayでデータを統治せよ!/ Data Federation with MCG
tutsunom
1
300
開発者と協働できるメトリクスダッシュボードを作ろう!/SRE Lounge 2023
lmi
3
500
cdk deployに必要な権限ってなんだ?
kinyok
0
180
データ分析基盤の要件分析の話(202201_JEDAI)
yabooun
0
270
WebLogic Server for OCI 概要
oracle4engineer
PRO
3
880
01_ユーザーリサーチ実施の進め方
kouzoukaikaku
0
530
NGINXENG JP#2 - 4-NGINX-エンジニアリング勉強会
hiropo20
0
120
Google Cloud Workflows: API automation, patterns and best practices
glaforge
0
100
OCI DevOps 概要 / OCI DevOps overview
oracle4engineer
PRO
0
500
MoT/コネヒト/Kanmu が語るプロダクト開発xデータ分析 - 分析から機械学習システムの開発まで一人で複数ロールを担う大変さ
masatakashiwagi
3
740
スクラム導入して変わったチーム、組織のありかた
yumechi
0
190
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
6
840
The Invisible Customer
myddelton
113
12k
GraphQLの誤解/rethinking-graphql
sonatard
39
7.8k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
13
1.1k
Debugging Ruby Performance
tmm1
67
11k
Rebuilding a faster, lazier Slack
samanthasiow
69
7.5k
Fantastic passwords and where to find them - at NoRuKo
philnash
32
1.9k
Git: the NoSQL Database
bkeepers
PRO
419
60k
Teambox: Starting and Learning
jrom
124
7.9k
Principles of Awesome APIs and How to Build Them.
keavy
117
15k
Pencils Down: Stop Designing & Start Developing
hursman
114
10k
How to name files
jennybc
47
73k
Transcript
Kubernetesストレージ可用性の 監視ツール「pie」のご紹介 2022年11月24日 サイボウズ ストレージチーム 大神 祐真 1
自己紹介 ▌大神 祐真 ▌サイボウズ ストレージチームにて 分散ストレージCephと 自社製CSIドライバTopoLVMを用いた データ移行と運用に従事しています 2
はじめに ▌サイボウズの新インフラ基盤(Neco)は Kubernetesクラスタです ▌ストレージチームではNeco上のアプリケーションへ 2種のストレージを提供しています Rook/Ceph – 分散ストレージ TopoLVM –
ノード内のローカルストレージ(LVM)を 動的に切り出して提供する自社製CSIドライバ 3
はじめに ▌サイボウズの新インフラ基盤(Neco)は Kubernetesクラスタ ▌ストレージチームではNeco上のアプリケーションへ 2種のストレージを提供している Rook/Ceph – 分散ストレージ TopoLVM –
ノード内のローカルストレージ(LVM)を 動的に切り出して提供する自社製CSIドライバ 4 PVの払い出しや、 払い出したボリュームへの読み書きが 正常に行えるか監視する仕組みが欲しい pie
正常性の確認方法 ▌以下の処理を定期的に実施します 1. 指定したNodeでCSIドライバ(TopoLVM)に PVを払い出させる 2. PodからPVにデータを書く 3. Podを消す ▌そして、PVの払い出しにかかった時間や、
アクセスのパフォーマンスを測って、メトリクスとして出力します 5 払い出しに時間がかかりすぎる、 パフォーマンスがしきい値を超える等で 異常と判定することができます
pieの中での2つの役割分担 (Probe/Controller) ▌以下の処理を定期的に実施します 1. 指定したNodeでCSIドライバ(TopoLVM)に PVを払い出させる 2. PodからPVにデータを書く 3. Podを消す
▌そして、Podの払い出しにかかった時間や、 アクセスのパフォーマンスを測って、メトリクスとして出力します 6 ←を行う役割が Probeです ↑に加えてProbeをPodとして生成する役割が Controllerです
PV監視の基本的な流れ 7 CronJob プローブ用Pod volume Probe 確認対象のNodeにプローブ用Podをデプロイ CSI Driver Pod再起時に
PV(volume)を作成 Controller Pod Controller Prometheus, VictoriaMetrics metrics を scrape して回収 ≈ 異常値を検出して発 報 pieのプログラム 新しくデプロイ するリソース 既存のリソース 凡例 生成 metrics を post Node Reconciler Event Reconciler
PV監視の基本的な流れ 8 CronJob プローブ用Pod volume Probe 確認対象のNodeにプローブ用Podをデプロイ CSI Driver Pod再起時に
PV(volume)を作成 Controller Pod Controller Prometheus, VictoriaMetrics metrics を scrape して回収 ≈ 異常値を検出して発 報 pieのプログラム 新しくデプロイ するリソース 既存のリソース 凡例 生成 metrics を post Node Reconciler Event Reconciler
Node Reconciler ▌Node別・Storage Class別に プローブ用Podを生成するCronJobを 生成します 現状のCronJobでは 1分周期でプローブ用Podを生成します 9
PV監視の基本的な流れ 10 CronJob プローブ用Pod volume Probe 確認対象のNodeにプローブ用Podをデプロイ CSI Driver Pod再起時に
PV(volume)を作成 Controller Pod Controller Prometheus, VictoriaMetrics metrics を scrape して回収 ≈ 異常値を検出して発 報 pieのプログラム 新しくデプロイ するリソース 既存のリソース 凡例 生成 metrics を post Node Reconciler Event Reconciler
プローブ用Pod ▌PVの払い出しと、 払い出されたPVをマウントし、 読み書きのチェック(現状ではfio) を行います Generic Ephemeral Volumeを用いています ▌得られたメトリクスをControllerへpostします 11
PV監視の基本的な流れ 12 CronJob プローブ用Pod volume Probe 確認対象のNodeにプローブ用Podをデプロイ CSI Driver Pod再起時に
PV(volume)を作成 Controller Pod Controller Prometheus, VictoriaMetrics metrics を scrape して回収 ≈ 異常値を検出して発 報 pieのプログラム 新しくデプロイ するリソース 既存のリソース 凡例 生成 metrics を post Node Reconciler Event Reconciler
Event Reconciler ▌プローブ用PodのEventをチェックし、 タイムスタンプ情報を元にメトリクスを 作成します ▌例) (Pod完了時刻) – (Pod生成時刻) があるしきい値以上である場合、
「CreateProbeSlowCount」という メトリクスをインクリメントします 13
動作例 14 pieを動作しているホスト(この場合はローカルホスト) の8080番ポートの”/metrics”からメトリクスの確認が行えます
OSSとして公開中 ▌以下のリポジトリで公開しています https://github.com/topolvm/pie 15
主な課題 ▌PVの削除時間に関するメトリクスの追加 ▌ドキュメント拡充 16
17 おわり ご清聴ありがとうございました!