Slide 1

Slide 1 text

YouTuber、自宅k8sクラスタはじめるってよ unchama (うんちゃま) @tsukkkkkun in k8s@home #1 2022/10/12(Wed) Type: LT(5min) 1

Slide 2

Slide 2 text

お前誰やねん おなまえ:unchama(うんちゃま) どんな活動をしている? • マイクラマルチサーバー 整地鯖 鯖主(大学4年で始めて6年目突入) • YouTube「散財系鯖主うんちゃま」(登録者2.5万人) • 最近はブイ、ウマ、サケ、アニメにお熱(要はオタク) • えんじにあ(えすあいあー)という名のフルタイム副業をしている うんちゃまと申します 2

Slide 3

Slide 3 text

(注)スライド作りすぎたのでめっちゃ飛ばします スライドは後で公開するのでゆるしてください 3

Slide 4

Slide 4 text

4 きょうはなすこと

Slide 5

Slide 5 text

5 おうちくばねてすくらすた はじめました(ぐへへ)

Slide 6

Slide 6 text

6 おうちくばねてすくらすた はじめました(ぐへへ) 写真はよ ハードウェアみせて ソフトウェア何使うたの セットアップどうするん 私、気になります!

Slide 7

Slide 7 text

7 おうちくばねてすくらすた はじめました(ぐへへ) 写真はよ ハードウェアみせて ソフトウェア何使うたの セットアップどうするん 私、気になります! その前にまずはプロフィール

Slide 8

Slide 8 text

我が家のk8sクラスタプロフィール • 作ったきっかけ • クラウドに置くと高え。 • 全リソースクラウドに乗せると維持費で破産するので オンプレ(自宅サーバー)でそれなりのスペックを運用してた • 試しにクラウドのマネージドk8sを部分的に使い始めたけどやっぱり高えわってなった • オンプレに移行した分安くなるし使えるリソースも多い→よしやるぞ • くばねてす、すごそうだけどなんもわからん。(要はお勉強) • オンプレk8sは難しそうという気持ちからマネージドサービス使ってた節ある • 周囲の圧力(主に視聴者)、あとロマン • のってるもの=趣味で公開してるマイクラ鯖の基盤に使用 • マイクラ鯖のセッション鯖(Bungeecord) ※永続データなし • マイクラ鯖本体はデータの永続化が必要ないものだけ • 本格的にはこれから(デリバリー周りと永続データ周りの運用整備が出来てから) • ほか、エコシステム • デリバリー(GitOps)周り、ログやメトリクスの収集閲覧周り • 運用規模 • マイクラ鯖の同時接続ピークは50〜60人程度 • クラスタ運用チームは2〜3人、開発は数人程度(アクティブな方をカウント) 8

Slide 9

Slide 9 text

ちな、どんなマイクラ鯖? おなまえ : ギガンティック☆整地鯖 いつから?: 2016年7月 特徴は? : アホみたいに整地できる。 Minecraft Java Edition版(つまりPC版)です。 くわしくは『整地鯖』で検索! 国内サーバリストランキング元1位 (ここ数年で抜かれた。しゅごい…) アホみたいに整地する しくみを独自開発 9 ロゴ(妻の直筆) めも:ここはシュッとやる(喋り過ぎるな、後が詰まるぞ)

Slide 10

Slide 10 text

10 おうちくばねてすくらすた はじめました(ぐへへ) 写真はよ ハードウェアみせて ソフトウェア何使うたの セットアップどうするん 私、気になります!

Slide 11

Slide 11 text

11 ハードウェア編 メ タ ル ラ ッ ク ガ ン 積 み

Slide 12

Slide 12 text

12 ハードウェア編 検証環境 本番環境 共用領域 (ストレージ,NWほか) https://github.com/unchama/kube-cluster-on-proxmox https://github.com/GiganticMinecraft/seichi_infra

Slide 13

Slide 13 text

13 ハードウェア編 検証環境 用途:主にクラスタビルドスクリプトのテストに使用 台数:3台(5台見えるけどNUCはVMwareのVMUGで遊ぶ用) スペックどのぐらい: 形態 CPU MEM NIC 自作PC Intel Core i5 9500 (6C6T) 32GB DDR4 Onboard:1Gx1,PCI:1Gx1 自作PC Intel Core i7 8700K (6C12T) 32GB DDR4 Onboard:1Gx1,PCI:1Gx1 自作PC Intel Core i3 6100 (2C4T) 32GB DDR4 Onboard:1Gx1,PCI:1Gx1 未使用 未 使 用

Slide 14

Slide 14 text

14 ハードウェア編 本番環境 用途:いわずもがな本番 台数:3台(4台見えるけど一番右は別用途) スペックどのぐらい: 形態 CPU MEM NIC 自作PC AMD Ryzen 5 3600 (6C12T) 64GB DDR4 Onboard:1Gx1,PCI:10Gx1 自作PC Intel Core i7-8700K (6C12T) 64GB DDR4 Onboard:1Gx1,PCI:10Gx1 自作PC Intel Core i7-6800K (6C12T) 64GB DDR4 Onboard:1Gx2,PCI:10Gx1 未 使 用 人 間 が 寝 る と こ ろ

Slide 15

Slide 15 text

15 ハードウェア編 共用領域 ここはかいつまんで紹介 ネットワークまわり 10G対応スイッチあります! SynologyのNAS(拡張カードで10G化) CSIドライバあります!両環境兼用 踏み台VM用ESXiホスト(リモート作業用)

Slide 16

Slide 16 text

16 ハードウェア編 システム構成 (物理) ルーター (RTX830) スイッチ (x510-28gtx) ルーター (IX2215) スイッチ (x510-28gtx) 自作PC#1 自作PC#2 自作PC#3 NAS(DS1621+) 自作PC#1 自作PC#2 自作PC#3 踏み台用ESXi

Slide 17

Slide 17 text

17 ハードウェア編 システム構成 (論理) ルーター (RTX830) ルーター (IX2215) 自作PC#1 自作PC#2 自作PC#3 NAS(DS1621+) 自作PC#1 自作PC#2 自作PC#3 検証サービスセグメント(1G) 本番サービスセグメント(1G) 検証SANセグメント(10G) 本番SANセグメント(10G) 踏み台用ESXi

Slide 18

Slide 18 text

18 ハードウェア編 おまけ(夜景)

Slide 19

Slide 19 text

19 ハードウェア編 おまけ(背面)

Slide 20

Slide 20 text

20 おうちくばねてすくらすた はじめました(ぐへへ) 写真はよ ハードウェアみせて ソフトウェア何使うたの セットアップどうするん 私、気になります!

Slide 21

Slide 21 text

21 ソフトウェア編 (base) • 仮想化基盤を採用 (Proxmox Virtual Environment) • 自作PC故にリモート管理機能が弱い(IPMIなんてない) • 壊れた時にベアメタルインストールだと 現地作業必須になっちゃうのがだるい • OSとくばねてすはVMとして扱うことで 気軽に作って壊せるようにした • くばねてすに移行してないシステムが依然VMで稼働中 • これと並行稼働させるために くばねてすもVMで立ててる節がある • 3ノードクラスタ構成 • ノード間でVMをライブマイグレーションできて便利 • Proxmoxを選んだ理由は金銭面 • サポート付帯なしなら無料で使えて機能制限も特にない • あとシンプルに使いやすい(OpenStackは挫折気味) 自作PC 物理 仮想化 VM VM VM k8s app app k8s app OS OS OS k8sVM群 レガシー VM群

Slide 22

Slide 22 text

VM(bootstrap) VM 22 ソフトウェア編 (base) • クラスタ構築はスクリプト化して 気軽にぶっ壊せるように • Gitで管理している構築スクリプトを ProxmoxホストにDLして実行 • Proxmoxのコマンドライン、cloud-init、Ansible、 kubeadmを使用 • 3control-plane、3worker-planeな構成のクラスタが生える • 物理は3筐体あるので散らして配置 自作PC 物理 仮想化 ダウンロード Base-VM VM Hostname設定 ネットワーク設定 スクリプト実行 clone パブリック リポジトリ Control Plane VM VM VM Worker Plane kubeadm join用の bootstrap-tokenを配布 deploy.sh 実行 自作PC 自作PC 自作PC VM (control-plane) VM (worker-plane) VM (control-plane) VM (worker-plane) VM (control-plane) VM (worker-plane) ※こんな感じで1筐体につき1worker+1controlで配置

Slide 23

Slide 23 text

パブリックリポジトリ 23 ソフトウェア編 (app) • クラスタ構築後の上物の入れ込みも 宣言的にやって自動化 • クラスタ完成したらArgoCDを流し込む • Terraformのhelm providerを使用 • あとはウォーミングアップを終えたArgoCDが勝手に各種アプリを建てていく • ArgoCDに建てさせるリソースはGitリポジトリ上で管理 • いわゆるGitOpsというやつですね • Renovateに「お兄さん、このコンポーネントアプデありますよ」も勝手にさせられるので良い VM(bootstrap) VM VM Control Plane VM VM VM Worker Plane helm providerで ArgoCDをデプロイ (コンニチワ) polling .tf CRDs(ApplicationSet etc…) マイクラ鯖まわり 他いろいろ… synology-csi metallb cloudflared 自作PC 物理 仮想化 Proxmox (Gitリポジトリに書いてあ るものがそのまま実環境 にあることに感動した)

Slide 24

Slide 24 text

ほか、いろいろ • 外部サービスの公開はcloudflaredを活用 • ポート解放してるサービスは実は少なめ • k8s最新バージョンへの追従 • kubeadm upgradeでたまにやってる • 一部kubeadm configに入れ込めてなくて 手で対応してるのでなんとかしたい • ストレージの本格活用はこれから • SynologyのCSI Driver経由で永続ボリューム使えてるけど使用は限定的(メ トリクス系の保管用ボリュームとかの吹っ飛んでも困らんもの) • バックアップリストアの運用を作ってマイクラ鯖本体のせたい • 複数人でわいわい作ってます • めっちゃ勉強になる • 月の電気代が3万円超えました(2人暮らし) 24

Slide 25

Slide 25 text

25 • マイクラ公開サーバー整地鯖は有志によって運営維持されています • Discordで開発活動をしているので興味のある方は覗きに来てください • https://discord.gg/GcJtgsCj3W ※6000人ぐらい入ってるので気軽にはいってください

Slide 26

Slide 26 text

26 検証環境 本番環境 共用領域 (ストレージ,NWほか) https://github.com/unchama/kube-cluster-on-proxmox https://github.com/GiganticMinecraft/seichi_infra リポジトリは公開していますので興味のある方はご覧ください (ぶっちゃけ全然説明しきれていない)

Slide 27

Slide 27 text

ごせいちょう ありがとう ございました 27