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
2.1k
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
210
RustのLINEBot SDKを自作した話
shinbunbun_
0
700
セキュリティキャンプ2023 Y3分散合意ゼミ 最終発表
shinbunbun_
0
2.3k
カーネルレベルでTwitterを禁止しよう
shinbunbun_
0
150
CRDTで始めるコンフリクトしないデータ同期
shinbunbun_
0
240
Haskell初心者がHaskellの楽しさについて語る
shinbunbun_
0
140
Rustで楕円曲線暗号の署名アルゴリズムをフルスクラッチ実装してみた話
shinbunbun_
0
600
IEEE802.1X認証を導入してみた
shinbunbun_
0
180
UBICの食材管理APIを作った話
shinbunbun_
0
170
Other Decks in Technology
See All in Technology
[NIKKEI Tech Talk] KDDI/KAG Scrum & Community for Engineering Training
curanosuke
2
220
E2Eテスト自動化プラットフォームにおけるAIの活用
shift_evolve
0
180
Classmethod流のPlatform Engineering / classmethod-platform-engineering-devio2024
tomoki10
0
470
Docker互換のセキュアなコンテナ実行環境「Podman」超入門
devops_vtj
6
3.2k
[NIKKEI Tech Talk]Bias for Action!! 実践から学ぶための仕組とコミュニティ / Community for Practice and Learning
kanamasa
0
270
AIアシスタントの活用で品質の向上と開発ワークフローのスピードアップ
nagix
1
200
Classmethod Odyssey 登壇資料
yamahiro
0
390
可視化プラットフォームGrafanaの基本と活用方法の全て
hamadakoji
0
230
OSSコミットしてZennの課題を解決した話
dyoshikawa1993
0
150
コンテナ・K8s研修 - 前半 コンテナ基礎・ハンズオン【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
170
データ分析基盤を作ってみよう~設計編~
nrinetcom
PRO
1
110
Azure OpenAI Service Dev Day / LLMでできる!使える!生成AIエージェント
masahiro_nishimi
3
750
Featured
See All Featured
Thoughts on Productivity
jonyablonski
64
4.1k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
277
13k
Statistics for Hackers
jakevdp
792
220k
5 minutes of I Can Smell Your CMS
philhawksworth
200
19k
Web development in the modern age
philhawksworth
203
10k
Designing the Hi-DPI Web
ddemaree
276
34k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
662
120k
Visualization
eitanlees
139
14k
Bash Introduction
62gerente
607
210k
How to train your dragon (web standard)
notwaldorf
79
5.5k
Bootstrapping a Software Product
garrettdimon
PRO
304
110k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
78
15k
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も割と簡単に立つ