Upgrade to Pro — share decks privately, control downloads, hide ads and more …

お家miniPCを使ってミリしらでkubernetes clusterたててみる

lemolatoon
March 22, 2025
61

お家miniPCを使ってミリしらでkubernetes clusterたててみる

https://wakate.connpass.com/event/343220/
情報科学若手の会春の陣2025でのLTのスライドです。

lemolatoon

March 22, 2025
Tweet

Transcript

  1. もくじ • 経緯 • kubernetesとは • ミリしらからの脱出 • kubernetes clusterを建てる

    • マイクラサーバーをcluster上で動かす • おうち特有の制約 • 最終形
  2. 経緯 • あるタスクを倒したご褒美でミニPCを購入 • いままでのkubernetesのイメージ • よし、mini PCとRasberry Pi 4でクラスタ建ててみよう

    • 目標はマイクラサーバーをたてることに Ryzen 7 5700U RAM: 16GB SSD: 500GB 3.1万円 なんか難しそう 家で動いてたらかっこいいかも
  3. kubernetes clusterのイメージ Control Plane: master node Node 1 Node 2

    Pod1 Pod2 Pod3 * Pod: 2つ以上のコンテナのまとまり
  4. kubernetes clusterのイメージ Control Plane: master node Node 1 Node 2

    Pod1 Pod2 Pod3 * Pod: 2つ以上のコンテナのまとまり Podがダウンする
  5. kubernetes clusterのイメージ Control Plane: master node Node 1 Node 2

    Pod1 Pod2 * Pod: 2つ以上のコンテナのまとまり Podがダウンする
  6. kubernetes clusterのイメージ Control Plane: master node Node 1 Node 2

    Pod1 Pod3 * Pod: 2つ以上のコンテナのまとまり 👀 Control Plane: Podがダウンしたことに 気づく
  7. kubernetes clusterのイメージ Control Plane: master node Node 1 Node 2

    Pod1 Pod3 * Pod: 2つ以上のコンテナのまとまり Control Plane: Podを作り直すための準 備
  8. kubernetes clusterのイメージ Control Plane: master node Node 1 Node 2

    Pod1 Pod3 * Pod: 2つ以上のコンテナのまとまり Pod2 スケジュールされたPod が作り直される
  9. どうやってミリしら状態で情報を集めるか 1. 基本的な概念をつかむ ◦ 公式ドキュメント ◦ イラストがおおめの本を読む 2. まだよくわからない概念をChatGPTに聞きまくる ◦

    ↓実際にした質問たち 3. Youtubeのkubernetesについての講演を見る ◦ LISA19 - Deep Dive into Kubernetes Internals for Builders and Operators
  10. マイクラを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ファイルで記述→
  11. 家 k8s cluster Rasberry Pi 4 (Control Plane) Mini PC

    (Worker Node) VPN Node Port Client パケット転送 (socat)