オンプレGPU監視システムのリプレイス奮闘記

264 Views

November 19, 25

スライド概要

11/18~11/19に開催された「CloudNative Days Winter 2025」 の発表資料です。

profile-image

Infra engineer | On-prem servers

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

作成者:大阪公立大学大学院 筧万里 2025.11.19 CloudNative Days 2025 オンプレGPU監視システムの リプレイス奮闘記 Keito Okamoto

2.

Keito Okamoto(V01d42/@V01dA2) ● ⼤阪公⽴⼤学⼤学院 情報学研究科 M2 ● 研究室にてオンプレサーバーの保守‧運⽤ ● 最近はObservabilityを勉強中 ● 登壇どころかイベント参加初めてで 滅茶苦茶緊張しております… 2

3.

弊研究室での運⽤しているシステムを紹介 3

4.

研究室GPU監視システム 4

5.

現⾏の構造 GPU Monitoring (Webサーバー) cron processgpu1.csv processgpu2.csv /var/autofs/nfs/web /var/autofs/nfs/web GPU-1 GPU-2 … processgpuXX.csv * * * * * sh make_info.sh /var/autofs/nfs/web … GPU-XX 5

6.

現⾏の構造の問題 GPU Monitoring (Webサーバー) cron ● cronの処理が落ちたのか processgpu1.csv processgpu2.csv /var/autofs/nfs/web /var/autofs/nfs/web GPU-1 GPU-2 … processgpuXX.csv * * * * * sh make_info.sh /var/autofs/nfs/web GPUが落ちたのかの … GPU-XX 問題の切り分けができない ● GPUを⼊れる度に⼿動でこのcron等の設定を⾏う必要がある ● NFSマウントに失敗すると、cronのprocessがスタックする 6

7.

そうだ、Kubernetesを導⼊しよう!💡 7

8.

k8sクラスタの構築 ● Ansibleによって⼀元的に各種Packageのインストールや設定 (Playbookは⾃作) ● 各種OSSや⾃作アプリのデプロイ ○ Helm : Helm ChartによってManifest管理するため ○ SealedSecret : Secretも含めGitHub上で管理するため ○ ArgoCD : GitOpsを実現するため ○ Prometheus : GPUメトリクスを収集‧監視するため ○ gpu-exporter : ⾃作Exporter ○ web-dashboard : ⾃作Webアプリケーション 8

9.

k8sクラスタの構築 ● Ansibleによって⼀元的に各種Packageのインストールや設定 (Playbookは⾃作) どうしてkubesprayを使わず、 わざわざ⾃作でPlaybookを? ● 各種OSSや⾃作アプリのデプロイ ○ Helm : Helm ChartによってManifest管理するため ○ SealedSecret : Secretも含めGitHub上で管理するため ○ ArgoCD : GitOpsを実現するため ○ Prometheus : GPUメトリクスを収集‧監視するため ○ gpu-exporter : ⾃作Exporter ○ web-dashboard : ⾃作Webアプリケーション 9

10.

k8sクラスタの構築 ● Ansibleによって⼀元的に各種Packageのインストールや設定 (Playbookは⾃作) どうしてkubesprayを使わず、 わざわざ⾃作でPlaybookを? ● 各種OSSや⾃作アプリのデプロイ ○ Helm : Helm ChartによってManifest管理するため ExporterもDCGM Exporterを ○ SealedSecret : Secretも含めGitHub上で管理するため 使えばいいのでは? ○ ArgoCD : GitOpsを実現するため ○ Prometheus : GPUメトリクスを収集‧監視するため ○ gpu-exporter : ⾃作Exporter ○ web-dashboard : ⾃作Webアプリケーション 10

11.

k8sクラスタの構築 ● Ansibleによって⼀元的に各種Packageのインストールや設定 (Playbookは⾃作) どうしてkubesprayを使わず、 わざわざ⾃作でPlaybookを? ● 各種OSSや⾃作アプリのデプロイ ○ Helm : Helm ChartによってManifest管理するため ExporterもDCGM Exporterを ○ SealedSecret : Secretも含めGitHub上で管理するため 使えばいいのでは? ○ ArgoCD : GitOpsを実現するため DashboardもGrafanaで(ry ○ Prometheus : GPUメトリクスを収集‧監視するため ○ gpu-exporter : ⾃作Exporter ○ web-dashboard : ⾃作Webアプリケーション 11

12.

研究室サーバー管理における問題 ● 学⽣のため、どうやっても⼈の引き⽌めが不可能(3年弱) ● フレックスアルバイト体系のため、 稼働する⼈だけが動き、技術が全体に浸透しない 特定技術スタックが継承されて⾏かない… 認知負荷を減らして触るハードルを下げたい 12

13.

刷新におけるジレンマ ● 技術導⼊によって効率化も進む⼀⽅負荷も増える… 問題発⽣時の 切り分け負荷 参画における 学習コスト 将来機能追加に おける負荷軽減 導⼊による ⾃動化 13

14.

刷新に当たって ● 基盤となるk8sの部分はしっかり導⼊する ○ kubeadm ○ helm ● ⼀⽅で障害対応できるようにするため可読性を上げる ○ kubespray, DCGM Exporterの不採⽤ ● 今後拡⼤して利⽤して⾏けるOSSは学習コストを踏まえ 導⼊の是⾮を決定 ○ ArgoCD : WebUIでPodの稼働状況を確認できるため採⽤ ○ Prometheus : 今後Disk状況の監視などにも使えるため採⽤ 14

15.

刷新後のシステム ● 全てArgoCDのApplicationSet下で管理 15

16.

刷新後のシステム ● gpu-exporter ○ GPU UsageとProcessを収集する exporter ○ tagをtriggerにImageをビルド ○ helmによるデプロイに対応 ○ 現状はNVIDIA GPU Operatorおよび Prometheus Operatorに依存 16

17.

刷新後のシステム ● gpu-dashboard ○ Prometheus APIを経由してGPU情報を表⽰するDashboard ○ tagをtriggerにImageをビルド ○ helmによるデプロイに対応 17

18.

振り返って ● サーバー管理に⼊った当初、独⾃の設定が多く⼤変だった 経験から認知負荷を下げたかった ● いざ⾃分がシステムを作る側になると 思いの他考慮すべき事項が多く⼤変だった…💦 ● スモールスタートで徐々に組織の扱える技術を 増やしていく視点を持つことも⼤切 18

19.

ご清聴ありがとうございました!! 19