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

YouTuber、自宅k8sクラスタはじめるってよ

unchama
October 12, 2022

 YouTuber、自宅k8sクラスタはじめるってよ

unchama (うんちゃま) @tsukkkkkun
in k8s@home #1
2022/10/12(Wed)
Type: LT(5min)

録画アーカイブ:
https://youtu.be/DuymC2o-uzA

unchama

October 12, 2022
Tweet

More Decks by unchama

Other Decks in Technology

Transcript

  1. お前誰やねん おなまえ:unchama(うんちゃま) どんな活動をしている? • マイクラマルチサーバー 整地鯖 鯖主(大学4年で始めて6年目突入) • YouTube「散財系鯖主うんちゃま」(登録者2.5万人) •

    最近はブイ、ウマ、サケ、アニメにお熱(要はオタク) • えんじにあ(えすあいあー)という名のフルタイム副業をしている うんちゃまと申します 2
  2. 我が家のk8sクラスタプロフィール • 作ったきっかけ • クラウドに置くと高え。 • 全リソースクラウドに乗せると維持費で破産するので オンプレ(自宅サーバー)でそれなりのスペックを運用してた • 試しにクラウドのマネージドk8sを部分的に使い始めたけどやっぱり高えわってなった

    • オンプレに移行した分安くなるし使えるリソースも多い→よしやるぞ • くばねてす、すごそうだけどなんもわからん。(要はお勉強) • オンプレk8sは難しそうという気持ちからマネージドサービス使ってた節ある • 周囲の圧力(主に視聴者)、あとロマン • のってるもの=趣味で公開してるマイクラ鯖の基盤に使用 • マイクラ鯖のセッション鯖(Bungeecord) ※永続データなし • マイクラ鯖本体はデータの永続化が必要ないものだけ • 本格的にはこれから(デリバリー周りと永続データ周りの運用整備が出来てから) • ほか、エコシステム • デリバリー(GitOps)周り、ログやメトリクスの収集閲覧周り • 運用規模 • マイクラ鯖の同時接続ピークは50〜60人程度 • クラスタ運用チームは2〜3人、開発は数人程度(アクティブな方をカウント) 8
  3. ちな、どんなマイクラ鯖? おなまえ : ギガンティック☆整地鯖 いつから?: 2016年7月 特徴は? : アホみたいに整地できる。 Minecraft

    Java Edition版(つまりPC版)です。 くわしくは『整地鯖』で検索! 国内サーバリストランキング元1位 (ここ数年で抜かれた。しゅごい…) アホみたいに整地する しくみを独自開発 9 ロゴ(妻の直筆) めも:ここはシュッとやる(喋り過ぎるな、後が詰まるぞ)
  4. 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 未使用 未 使 用
  5. 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 未 使 用 人 間 が 寝 る と こ ろ
  6. 16 ハードウェア編 システム構成 (物理) ルーター (RTX830) スイッチ (x510-28gtx) ルーター (IX2215)

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

    自作PC#3 NAS(DS1621+) 自作PC#1 自作PC#2 自作PC#3 検証サービスセグメント(1G) 本番サービスセグメント(1G) 検証SANセグメント(10G) 本番SANセグメント(10G) 踏み台用ESXi
  8. 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群
  9. 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で配置
  10. パブリックリポジトリ 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リポジトリに書いてあ るものがそのまま実環境 にあることに感動した)
  11. ほか、いろいろ • 外部サービスの公開はcloudflaredを活用 • ポート解放してるサービスは実は少なめ • k8s最新バージョンへの追従 • kubeadm upgradeでたまにやってる

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