Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
お家miniPCを使ってミリしらでkubernetes clusterたててみる
Search
lemolatoon
March 22, 2025
1
210
お家miniPCを使ってミリしらでkubernetes clusterたててみる
https://wakate.connpass.com/event/343220/
情報科学若手の会春の陣2025でのLTのスライドです。
lemolatoon
March 22, 2025
Tweet
Share
More Decks by lemolatoon
See All by lemolatoon
スマホから Youtube Shortsを見られないようにする
lemolatoon
29
36k
【Rust × C++】 夢の共演を試した話
lemolatoon
1
1.7k
no_stdでもasyncしたい
lemolatoon
0
260
Rustの手続きマクロで黒魔術入門
lemolatoon
2
1.3k
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
698
190k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
How to train your dragon (web standard)
notwaldorf
97
6.4k
Making the Leap to Tech Lead
cromwellryan
135
9.7k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
RailsConf 2023
tenderlove
30
1.3k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Git: the NoSQL Database
bkeepers
PRO
432
66k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.3k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.2k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Transcript
お家miniPCを使って ミリしらでkubernetes cluster たててみる lemolatoon
もくじ • 経緯 • kubernetesとは • ミリしらからの脱出 • kubernetes clusterを建てる
• マイクラサーバーをcluster上で動かす • おうち特有の制約 • 最終形
経緯 • あるタスクを倒したご褒美でミニPCを購入 • いままでのkubernetesのイメージ • よし、mini PCとRasberry Pi 4でクラスタ建ててみよう
• 目標はマイクラサーバーをたてることに Ryzen 7 5700U RAM: 16GB SSD: 500GB 3.1万円 なんか難しそう 家で動いてたらかっこいいかも
kubernetesとは? • コンテナを使ったワークロードやサービスを管理するためのオープンソースプラット フォーム • 宣言的な設定と自動化によって効率的に運用可能 たとえば... • コンテナが落ちたときに、自動で立ち上げる •
rolling updateを可能に • ロードバランシング、スケーリングの設定
kubernetes clusterのイメージ Control Plane: master node Node 1 Node 2
Pod1 Pod2 Pod3 * Pod: 2つ以上のコンテナのまとまり
kubernetes clusterのイメージ Control Plane: master node Node 1 Node 2
Pod1 Pod2 Pod3 * Pod: 2つ以上のコンテナのまとまり Podがダウンする
kubernetes clusterのイメージ Control Plane: master node Node 1 Node 2
Pod1 Pod2 * Pod: 2つ以上のコンテナのまとまり Podがダウンする
kubernetes clusterのイメージ Control Plane: master node Node 1 Node 2
Pod1 Pod3 * Pod: 2つ以上のコンテナのまとまり 👀 Control Plane: Podがダウンしたことに 気づく
kubernetes clusterのイメージ Control Plane: master node Node 1 Node 2
Pod1 Pod3 * Pod: 2つ以上のコンテナのまとまり Control Plane: Podを作り直すための準 備
kubernetes clusterのイメージ Control Plane: master node Node 1 Node 2
Pod1 Pod3 * Pod: 2つ以上のコンテナのまとまり Pod2 スケジュールされたPod が作り直される
どうやってミリしら状態で情報を集めるか 1. 基本的な概念をつかむ ◦ 公式ドキュメント ◦ イラストがおおめの本を読む 2. まだよくわからない概念をChatGPTに聞きまくる ◦
↓実際にした質問たち 3. Youtubeのkubernetesについての講演を見る ◦ LISA19 - Deep Dive into Kubernetes Internals for Builders and Operators
実際にclusterを建てる • 最終的に、kubeadmを使うことに決定 ◦ おそらく最も手軽で、簡単に kubernetes clusterを建てることができる • いくつかのコマンドを実行し、clusterが完成! 家
k8s cluster Rasberry Pi 4 (Control Plane) Mini PC (Worker Node) Desktop PC kubectl MacBook Air kubectl by ssh PortForward via Cloudflare Tunnel
マイクラをcluster上で動かす • コンテナイメージ ◦ itzg/minecraft-server • データの永続化 (Persistent Volume) ◦
Node上の特定のディレクトリで Persistent Volumeを実現するStorage Provisionerを使用 ▪ https://github.com/rancher/local-path-provisioner ◦ たとえば、minecraft-pvcという名前で、20GiB分確保しておき、これをコンテナの Volumeとして 使うようにする、などができる。 • サービスの公開 ◦ NodePortという、特定のNodeのIPアドレスとポート番号を用いてサービスを公開するように設定 • ArgoCD ◦ clusterの状態とGitHubで管理する構成を同期 すべてyamlファイルで記述→
LAN内からマイクラサーバーに接続 • ローカルIPでWorker Nodeを指定すれば接続可能!
自分の家特有の事情 • 集合住宅のためルーターの設定ができない ◦ つまり、ポート開放ができない • このままでは外から他の人に遊んでもらえない • なんらかの別の手段でサービス(=マイクラサーバー)を公開する必要がある Port:
25565 k8s cluster
自分の家特有の事情 • 集合住宅のためルーターの設定ができない ◦ つまり、ポート開放ができない • このままでは外から他の人に遊んでもらえない • なんらかの別の手段でサービス(=マイクラサーバー)を公開する必要がある •
解決策: Azureを経由させる Port: 25565 k8s cluster
家 k8s cluster Rasberry Pi 4 (Control Plane) Mini PC
(Worker Node) VPN Node Port Client パケット転送 (socat)
感想 • kubernetesミリしらだったが、kubeadmのおかげで簡単に建てられて楽しい • .yamlでストレージやネットワークも管理しておけるので、dockerで建てるよりも簡単 に建てたり壊したりできて楽しい • 自由にポートを開放できないため、サービスを公開するのが多少面倒 ◦ socat(or
iptables)の設定をyamlでなんとか記述して自動で設定できるようにできたらおもしろそう • 友人にサーバーを遊んでもらえて楽しい
ありがとうございました。