Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Kubernetesストレージ可用性の監視ツール「pie」のご紹介
Search
Cybozu
PRO
November 24, 2022
Technology
0
320
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
AIツール開発ワークショップ(Dify)【サイボウズ新人研修2025】
cybozuinsideout
PRO
15
16k
モバイル【サイボウズ新人研修2025】
cybozuinsideout
PRO
3
3.3k
Git/GitHub を使う上で知っておくと嬉しいかも Tips【サイボウズ新人研修2025】
cybozuinsideout
PRO
11
8.8k
GitHub Copilot活用【サイボウズ新人研修2025】
cybozuinsideout
PRO
14
13k
ソフトウェアライセンス【サイボウズ新人研修2025】
cybozuinsideout
PRO
12
7.5k
エンジニアのためのアウトプット講座 〜知識をシェアするはじめの一歩〜【サイボウズ新人研修2025】
cybozuinsideout
PRO
6
4.1k
Docker入門【サイボウズ新人研修2025】
cybozuinsideout
PRO
12
10k
セキュリティ【サイボウズ新人研修2025】
cybozuinsideout
PRO
2
3k
TLS 1.3をざっと理解する【サイボウズ新人研修2025】
cybozuinsideout
PRO
2
1.8k
Other Decks in Technology
See All in Technology
新規事業におけるAIリサーチの活用例
ranxxx
0
170
AIを使っていい感じにE2Eテストを書けるようになるまで / Trying to Write Good E2E Tests with AI
katawara
3
1.9k
経理出身PdMがAIプロダクト開発を_ハンズオンで学んだ話.pdf
shunsukenarita
1
230
TypeScript 上達の道
ysknsid25
23
4.8k
公開初日に個人環境で試した Gemini CLI 体験記など / Gemini CLI実験レポート
you
PRO
3
620
MCPと認可まわりの話 / mcp_and_authorization
convto
2
290
Snowflake のアーキテクチャは本当に筋がよかったのか / Data Engineering Study #30
indigo13love
0
280
The Madness of Multiple Gemini CLIs Developing Simultaneously with Jujutsu
gunta
1
2.8k
スプリントレビューを効果的にするために
miholovesq
9
1.7k
人と生成AIの協調意思決定/Co‑decision making by people and generative AI
moriyuya
0
170
怖くない!GritQLでBiomeプラグインを作ろうよ
pal4de
1
140
Turn Your Community into a Fundraising Catalyst for Black Philanthropy Month
auctria
PRO
0
200
Featured
See All Featured
Embracing the Ebb and Flow
colly
86
4.8k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.9k
A better future with KSS
kneath
238
17k
Git: the NoSQL Database
bkeepers
PRO
431
65k
Done Done
chrislema
184
16k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
1k
GitHub's CSS Performance
jonrohan
1031
460k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
50
5.5k
It's Worth the Effort
3n
185
28k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
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 おわり ご清聴ありがとうございました!