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
750
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
Linuxの時間を10秒止める
sat
PRO
2
58
プロセスへのメモリ割り当て4 - 実際に使うときにメモリを獲得するデマンドページング(実践編)
sat
PRO
1
22
プロセスへのメモリ割り当て(3) 実際に使うときにメモリを獲得するデマンドページング
sat
PRO
1
29
プロセスへのメモリ割り当て(1) mmap
sat
PRO
2
45
プロセスへのメモリ割り当て2-Pythonのようなナウい言語ではどうやってメモリ獲得するのか
sat
PRO
1
38
サイボウズのOSPO
sat
PRO
3
230
無いはずのパーティションがある Phantom Atari Partition
sat
PRO
1
42
仮想アドレスから物理アドレスにはどうやって変換するの?
sat
PRO
2
78
仮想アドレスと物理アドレスの対応を実機確認してみよう
sat
PRO
0
58
Other Decks in Technology
See All in Technology
楽しくGoを学び合う、LayerXの勉強会文化 / LayerX's study culture of having fun and learning Go together
ar_tama
2
350
シフトレフトで挑む セキュリティの生産性向上
sekido
PRO
0
270
ACRiルーム最新情報とAMD GPUサーバーのご紹介
anjn
0
150
Flutter研修【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
160
ゆめみのアクセシビリティの現在地と今後
ryokatsuse
3
290
[I/O Extended Android 2024] What`s new in Android 2024
kyeongwan
0
220
テストケースの自動生成に生成AIの導入を試みた話と生成AIによる今後の期待
shift_evolve
0
180
MySQLのロックの種類とその競合
yoku0825
6
1.6k
CTOから見た事業開発とプロダクト開発 / My Perspective on Business and Product Development as CTO
keisuke69
4
960
AWSでRAGを作る法方
sonoda_mj
1
140
CEL(Common Expression Language)で書いた条件にマッチしたIAM Policyを見つける / iam-policy-finder
fujiwara3
0
710
AOAI Dev Day - Opening Session
yoshidashingo
2
430
Featured
See All Featured
Design by the Numbers
sachag
277
18k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
17
8.7k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
35
6.3k
Building Effective Engineering Teams - LeadDev
addyosmani
47
2.2k
The World Runs on Bad Software
bkeepers
PRO
63
11k
The Language of Interfaces
destraynor
151
23k
A Tale of Four Properties
chriscoyier
155
22k
Facilitating Awesome Meetings
lara
46
5.8k
Music & Morning Musume
bryan
43
5.9k
Build The Right Thing And Hit Your Dates
maggiecrowley
28
2.2k
Being A Developer After 40
akosma
72
580k
How To Stay Up To Date on Web Technology
chriscoyier
784
250k
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 おわり