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
GitHub-hosted runnerでそこまでやるの!?Rookの場合
Search
Satoru Takeuchi
PRO
October 06, 2022
Technology
0
870
GitHub-hosted runnerでそこまでやるの!?Rookの場合
Kubernetes Meetup Tokyo #53のLT資料です
https://k8sjp.connpass.com/event/259350/
Satoru Takeuchi
PRO
October 06, 2022
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
低レイヤソフトウェア技術者が YouTuberとして食っていこうとした話
sat
PRO
7
6k
ポーリングと割り込み
sat
PRO
1
68
Rook: Intro and Deep Dive With Ceph
sat
PRO
1
130
会社員しながら本を書いてきた知見の共有
sat
PRO
3
850
デバイスにアクセスするデバイスファイル
sat
PRO
1
56
ファイルシステムのデータを ブロックデバイスへの操作で変更
sat
PRO
1
45
デバイスドライバ
sat
PRO
0
73
マルチスレッドの実現方法 ~カーネルスレッドとユーザスレッド~
sat
PRO
2
160
共有メモリ
sat
PRO
3
86
Other Decks in Technology
See All in Technology
猫でもわかるQ_CLI(CDK開発編)+ちょっとだけKiro
kentapapa
0
3.4k
Findy Freelance 利用シーン別AI活用例
ness
0
380
Amazon Bedrock AgentCoreのフロントエンドを探す旅 (Next.js編)
kmiya84377
1
140
家族の思い出を形にする 〜 1秒動画の生成を支えるインフラアーキテクチャ
ojima_h
1
710
AI関数が早くなったので試してみよう
kumakura
0
210
Nx × AI によるモノレポ活用 〜コードジェネレーター編〜
puku0x
0
430
Backlog AI アシスタントが切り開く未来
vvatanabe
0
110
AIに頼りすぎない新人育成術
cuebic9bic
3
190
AI時代の経営、Bet AI Vision #BetAIDay
layerx
PRO
1
1.9k
AIのグローバルトレンド 2025 / ai global trend 2025
kyonmm
PRO
1
130
マルチモーダル基盤モデルに基づく動画と音の解析技術
lycorptech_jp
PRO
5
570
Foundation Model × VisionKit で実現するローカル OCR
sansantech
PRO
1
330
Featured
See All Featured
Optimizing for Happiness
mojombo
379
70k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
47
9.6k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Git: the NoSQL Database
bkeepers
PRO
431
65k
Visualization
eitanlees
146
16k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
332
22k
Adopting Sorbet at Scale
ufuk
77
9.5k
Making Projects Easy
brettharned
117
6.3k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.4k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
800
The Invisible Side of Design
smashingmag
301
51k
Transcript
GitHub-hosted Runnerで そこまでやるの!? ~ Rookの場合 ~ Oct. 6th, 2022 sat@サイボウズ
データストアチーム 1
はじめに ▌Rookとは ⚫オープンソースの分散ストレージCephのオーケストレータ ⚫Kubernetes上のオペレータとして動作する ⚫Cloud Native Computing Foundation(CNCF)のgraduated プロジェクト ▌はなすこと
⚫RookをGitHub-hosted runner(後述)上でテストするための課 題と解決方法 2
前提知識
Cephのアーキテクチャ 4 アプリ ストレージプール Cephクラスタ node disk disk node disk
disk node disk disk … ブロックデバイス オブジェクト ブロックデバイス ブロックストレージ オブジェクト ファイルシステム アプリ アプリ ブロックデバイス ブロックデバイス オブジェクトストレージ OSD OSD OSD OSD OSD OSD
RookのCI ▌全PRに対してGitHub Actionsを使ってCIを流す ▌CIはGitHub-hosted runner上で動かす 5 GitHub-hosted runner (GitHubが提供するVMインスタンス) CI環境(Rook開発者が用意)
課題1: ブロックデバイスの用意
runnerにOSD用ブロックデバイスが無い 7 GitHub-hosted runner sda sdb1 sdb sda14 sda15 /
/boot/efi 4Mしかない。 OSDを作るには5GiB必要 sdb1 /mount
無いなら作ればいい! ▌sdb上のファイルシステムとパーティションを削除 8 GitHub-hosted runner sda sdb1 sdb sda14 sda15
/ /boot/efi sdb1 /mount グェー ギャー
後はsdb上にOSDを作れば勝ち! 9 GitHub-hosted runner sda sdb1 sdb sda14 sda15 /
/boot/efi ストレージプール OSD Cephクラスタ
課題2: OSDの多様な形式
OSDの形式がやたらと多い ▌形式の例 ⚫暗号したもの ⚫高速化のためにSSD上にWALを作るもの ⚫{ディスク全体,パーティション, Logical Volume}に作るものなど ▌全部動作確認するのは大変… 11
俺たちにはjobがある!勝ち! ▌全パターンについてjobを作って並列テスト 12 ストレージ プール Cephクラスタ sdb OSD ストレージ プール
Cephクラスタ sdb ストレージ プール Cephクラスタ sdb sdb1 OSD sdb1 sdb2 OSD WAL ストレージ プール Cephクラスタ sdb VG … LV OSD …
課題3: レプリケーション
Rookはレプリケーションもできる ▌Rookは複数クラスタ間でブロックデバイスやオブジェ クトストレージのレプリケーションができる ▌当然ながらレプリケーション機能もテストしたい ▌でもGitHub-hosted runnerは1個しかない 14
sdb上にパーティションを2つ作って… 15 sdb sdb1 sdb2
2つクラスタを作って… 16 ストレージ プール Cephクラスタ sdb sdb1 sdb2 OSD ストレージ
プール OSD Cephクラスタ ブロックデバイス or オブジェクト ストレージ ブロックデバイス or オブジェクト ストレージ
レプリケーション!勝った! 17 ストレージ プール Cephクラスタ sdb sdb1 sdb2 OSD ストレージ
プール OSD Cephクラスタ ブロックデバイス or オブジェクト ストレージ ブロックデバイス or オブジェクト ストレージ
まとめ ▌RookによるGitHub-hosted runnerのエクストリームな使いかたを紹介 ▌ほかにも邪法がてんこもり ▌気になる人はソースをチェック! ⚫ https://github.com/rook/rook/tree/master/.github/workflows ⚫ https://github.com/rook/rook/tree/master/tests/scripts 18
19 おわり