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
860
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
Rook: Intro and Deep Dive With Ceph
sat
PRO
0
76
会社員しながら本を書いてきた知見の共有
sat
PRO
3
760
デバイスにアクセスするデバイスファイル
sat
PRO
1
31
ファイルシステムのデータを ブロックデバイスへの操作で変更
sat
PRO
1
28
デバイスドライバ
sat
PRO
0
44
マルチスレッドの実現方法 ~カーネルスレッドとユーザスレッド~
sat
PRO
2
110
共有メモリ
sat
PRO
3
66
マルチスレッドプログラム
sat
PRO
3
55
Linuxのブートプロセス initramfs編
sat
PRO
2
75
Other Decks in Technology
See All in Technology
Create a Rails8 responsive app with Gemini and RubyLLM
palladius
0
130
活きてなかったデータを活かしてみた話 / Shirokane Kougyou vol 19
sansan_randd
1
380
JSX - 歴史を振り返り、⾯⽩がって、エモくなろう
pal4de
3
1k
キャディでのApache Iceberg, Trino採用事例 -Apache Iceberg and Trino Usecase in CADDi--
caddi_eng
0
170
AWS と定理証明 〜ポリシー言語 Cedar 開発の舞台裏〜 #fp_matsuri / FP Matsuri 2025
ytaka23
9
2.6k
監視のこれまでとこれから/sakura monitoring seminar 2025
fujiwara3
9
1.8k
TerraformをSaaSで使うとAzureの運用がこんなに楽ちん!HCP Terraformって何?
mnakabayashi
0
250
CSS、JSをHTMLテンプレートにまとめるフロントエンド戦略
d120145
0
160
Long journey of Continuous Delivery at Mercari
hisaharu
1
230
Microsoft Build 2025 技術/製品動向 for Microsoft Startup Tech Community
torumakabe
1
120
OTFSG勉強会 / Introduction to the History of Delta Lake + Iceberg
databricksjapan
0
110
「どこにある?」の解決。生成AI(RAG)で効率化するガバメントクラウド運用
toru_kubota
2
460
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.3k
It's Worth the Effort
3n
184
28k
Documentation Writing (for coders)
carmenintech
71
4.9k
Balancing Empowerment & Direction
lara
1
320
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
107
19k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
How to Ace a Technical Interview
jacobian
276
23k
We Have a Design System, Now What?
morganepeng
52
7.6k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
20k
Typedesign – Prime Four
hannesfritz
42
2.7k
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 おわり