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
270
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
サイボウズフロントエンドエキスパートチームについて / FrontendExpert Team
cybozuinsideout
PRO
6
40k
2024/11/25 ReDesigner Online Meetup 会社紹介
cybozuinsideout
PRO
0
380
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
9
49k
テクニカルライティング
cybozuinsideout
PRO
4
580
サイボウズのアジャイルクオリティ2024
cybozuinsideout
PRO
3
470
モブに早く慣れたい人のためのガイド2024
cybozuinsideout
PRO
3
640
モバイル
cybozuinsideout
PRO
3
350
ソフトウェアライセンス
cybozuinsideout
PRO
4
310
ソフトウェアテスト
cybozuinsideout
PRO
3
530
Other Decks in Technology
See All in Technology
利用終了したドメイン名の最強終活〜観測環境を育てて、分析・供養している件〜 / The Ultimate End-of-Life Preparation for Discontinued Domain Names
nttcom
2
330
明日からできる!技術的負債の返済を加速するための実践ガイド~『ホットペッパービューティー』の事例をもとに~
recruitengineers
PRO
3
520
2/18/25: Java meets AI: Build LLM-Powered Apps with LangChain4j
edeandrea
PRO
0
150
30分でわかる『アジャイルデータモデリング』
hanon52_
10
2.9k
「海外登壇」という 選択肢を与えるために 〜Gophers EX
logica0419
0
920
株式会社EventHub・エンジニア採用資料
eventhub
0
4.3k
クラウドサービス事業者におけるOSS
tagomoris
3
960
LINEギフトにおけるバックエンド開発
lycorptech_jp
PRO
0
120
生成 AI プロダクトを育てる技術 〜データ品質向上による継続的な価値創出の実践〜
icoxfog417
PRO
5
1.8k
表現を育てる
kiyou77
1
230
2024.02.19 W&B AIエージェントLT会 / AIエージェントが業務を代行するための計画と実行 / Algomatic 宮脇
smiyawaki0820
15
4.1k
Perlの生きのこり - エンジニアがこの先生きのこるためのカンファレンス2025
kfly8
1
220
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
223
9.3k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
560
Six Lessons from altMBA
skipperchong
27
3.6k
Fontdeck: Realign not Redesign
paulrobertlloyd
83
5.4k
The Pragmatic Product Professional
lauravandoore
32
6.4k
Bash Introduction
62gerente
611
210k
Visualization
eitanlees
146
15k
Into the Great Unknown - MozCon
thekraken
35
1.6k
It's Worth the Effort
3n
184
28k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
4
420
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
133
33k
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 おわり ご清聴ありがとうございました!