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
NixOSでもご自宅k8sがしたい!
Search
Yuto Takamune
July 30, 2023
Technology
2
3.3k
NixOSでもご自宅k8sがしたい!
Yuto Takamune
July 30, 2023
Tweet
Share
More Decks by Yuto Takamune
See All by Yuto Takamune
GPT-3.5 Turbo をファインチューニングして自分のクローンを作った話
shinbunbun_
0
290
RustのLINEBot SDKを自作した話
shinbunbun_
0
1.4k
セキュリティキャンプ2023 Y3分散合意ゼミ 最終発表
shinbunbun_
0
3.4k
カーネルレベルでTwitterを禁止しよう
shinbunbun_
0
220
CRDTで始めるコンフリクトしないデータ同期
shinbunbun_
0
460
Haskell初心者がHaskellの楽しさについて語る
shinbunbun_
0
180
Rustで楕円曲線暗号の署名アルゴリズムをフルスクラッチ実装してみた話
shinbunbun_
0
1.3k
IEEE802.1X認証を導入してみた
shinbunbun_
0
250
UBICの食材管理APIを作った話
shinbunbun_
0
210
Other Decks in Technology
See All in Technology
Как мы автоматизировали интеграционное тестирование с Gonkey и не пожалели. Паша Егорычев, Кирилл Поляков
lamodatech
0
2.1k
LLM アプリケーションのためのクラウドセキュリティ - CSPM の実装ポイント-
osakatechlab
0
390
AI 코딩 에이전트 더 똑똑하게 쓰기
nacyot
0
540
AndroidアプリエンジニアもMCPを触ろう
kgmyshin
2
650
正式リリースされた Semantic Kernel の Agent Framework 全部紹介!
okazuki
1
1.1k
Ninno LT
kawaguti
PRO
1
120
クラウドネイティブ環境の脅威モデリング
kyohmizu
2
400
計測による継続的なCI/CDの改善
sansantech
PRO
1
210
CodeRabbitと過ごした1ヶ月 ─ AIコードレビュー導入で実感したチーム開発の進化
mitohato14
1
240
Previewでもここまで追える! Azure AI Foundryで始めるLLMトレース
tomodo_ysys
2
640
Terraform にコントリビュートしていたら Azure のコストをやらかした話 / How I Messed Up Azure Costs While Contributing to Terraform
nnstt1
1
460
MySQL InnoDB Data Recovery - The Last Resort
lefred
0
110
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
223
9.6k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Unsuck your backbone
ammeep
671
58k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
5
600
Art, The Web, and Tiny UX
lynnandtonic
298
20k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
34
2.2k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
120
52k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
GraphQLの誤解/rethinking-graphql
sonatard
71
10k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.4k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
227
22k
Transcript
NixOSでもご自宅k8sがしたい! seccamp2023 LT しんぶんぶん
自己紹介 • 名前: しんぶんぶん • 所属: 会津大学学部3年 • Twitter: @shinbunbun_,
@4fa19623 • Rustいっぱいちゅき • LINE API Expert / seccamp ’23 / Cybozu labyouth 13th
みなさん、NixOS使ってますよね?
NixOSとは • 純粋関数型パッケージマネージャであるNixをベースとしたLinuxディストリビュー ション • 環境を全て宣言的に記述できる • 設定を記述する→ビルドするで適用 ◦ ビルドするたびにバージョンが発行されて、起動する際にブートローダーから任意のバージョンを選
択できる ◦ →ロールバックが容易
みなさん、おうちにk8s立てたいですよね?
NixOSでk8sを立てる • 当たり前の様にkubeadmは使えない ◦ NixOSはシステムに関する大部分が Read-Only File Systemになっており、Nix経由でしか書き換 えできない •
configuration.nixに全部書きます • 逆にいえば、nix書くだけでk8sが立ち上がる • 今回はmaster1台でお試ししてみる
None
はい、これでクラスタ立ちました
NixOS最高!!!
せっかくだからNodeをもう一つ立ててみる
None
これで完成
せっかくだから最近流行りのMisskey立ててみよう
Misskeyを立てる • 公式のHelmはボリューム周りの問題でなぜか動かなかったので、自分でマニフェ ストを書く • 参考: https://4nm1tsu.com/posts/4pdgkbc/ • Nodeが1台なので、ローカルのストレージを使用
まずはDB
• Secret, SVC, PV, PVC, Podを作成
次にredis
• SVC, PV, PVC, Podを作成
最後にWebサーバ
• PV, PVC, SVC, Deploymentを作 成
最後にCloudflare Tunnel
None
applyすれば完成!
が、ここで1つ問題が...
なぜかsvcが名前解決できない • 原因を調べてみると、Kubernetes API Serviceへのアクセスが失敗している • iptablesとか色々見たりして無限時間溶かした
結局原因は... • Firewallでした • Kubernetes APIサーバは普通Podとしてクラスター内に立っているらしいが、 NixOSで構築するとクラスター外部にAPI Serverが立つ • Podからローカルネットワークへのアクセスは、すなわち外部ネットワークからロー
カルネットワークへのアクセスと同じ • ということは、API Serverが立っているポートへの外部からのアクセスをFirewallで 許可しないといけなかった
これで終わり
まとめ • NixOSだと超簡単にk8sクラスタを構築できる • Misskeyも割と簡単に立つ