第二回自宅鯖再構築祭り!(構想編)
次:第二回自宅鯖再構築祭り!
第一回自宅鯖再構築祭り!の構成からまた変更したい。
理由:
自作パソコンを新しいのにしたから古いのが使わなくなった。
NASが貧弱
サーバひとつしかないのでkubernetesの意味...バックエンド,DBとフロントエンドをちゃんと分けてAPIでやりとりすることをしたい。
proxmox使いたい。仮想化プラットフォーム(ハイパーバイザー)を使ってよくある自宅サーバーを建てた方が良さそう
proxmox使いたい理由としてもう一つは複数サーバー買うより一つで完結した方が安いから
gitlab使ったら便利でしょう
ChatGPTにも相談してみた
code:プロンプト
二台pcがあって、一台はn100のミニpcで、もう一つはi7 8700kのデスクトップpcです。この二つでwebサーバーとメールサーバーとマインクラフトサーバーとNASを作りたい。proxmoxの上にkubernetesを動かしたい。n100のpcは公開して、i7はどちらかというとバックエンドやファイルサーバーとしてで動かしたい。一緒にどうやって構築するか考えよう
いいね、それぞれの役割を明確にしつつ、効率よく分散させればかなり面白い構成になるね!N100は省電力で常時稼働に向いてるし、i7-8700Kの方はパワーがあるからバックエンドや重めの処理に使えるのは理想的。以下のような構成で一緒に設計してみよう。
/icons/hr.icon
🔧 前提のスペックと役割
table:table
PC スペック 役割
N100 ミニPC 省電力・小型・24h稼働前提 フロントエンド公開サーバー(Web、メール、MC公開)、K8sノード
i7-8700K デスクトップPC 高性能・常時稼働も可能(または必要時起動) ストレージ/NAS、バックエンド処理、MCホスト、K8sノード
/icons/hr.icon
🗂️ やりたいこと一覧
Webサーバー(公開用)
メールサーバー(公開用)
マインクラフトサーバー(できれば公開)
NAS(ローカル or リモートアクセス用)
Kubernetesクラスタ(Proxmox上に構築)
/icons/hr.icon
🧱 全体の構成案(初期)
1. Proxmox VE構成
両PCともProxmoxをホストOSにして仮想環境を構築。
N100: 軽量コンテナ・VM中心
i7: 重量級VM、NASとしてストレージ提供
2. Kubernetesクラスタ構成
N100とi7の両方でK8sノードを構成(k3sでも可)
N100: master + node
i7: node
3. ネットワーク構成
N100: グローバルIP or ルーターからDMZ/PAT設定で公開
i7: プライベートネットワーク内(必要に応じてVPNや内部リバプロでアクセス)
/icons/hr.icon
🔄 サービス配置案
table:table
サービス 配置 備考
Webサーバー(nginxなど) N100 (K8s pod or LXC) 443ポート公開
メールサーバー(Postfix/Dovecot + Rspamd) N100 SPF, DKIM, DMARC対応も必要
マインクラフト(Java版) i7 ポート開放はN100からリバースプロキシで
NAS(Samba/NFS/Nextcloud) i7 i7のストレージ活用。NextcloudならWebUIも可
Kubernetes (k3sなど) 両方 分散構成、Helmも活用できると良い
Nginxリバースプロキシ N100 Let's Encrypt対応、MCのプロキシにも使える
/icons/hr.icon
🔐 セキュリティとアクセス面
外部公開:N100のみ(HTTPS, SMTP, MCリダイレクト)
内部通信:WireGuard or Tailscaleで両PC間VPN
バックアップ:i7からN100へ定期同期 + 外部HDD等への自動バックアップも検討
/icons/hr.icon
🛠 次に決めること
1. どのサービスをKubernetes上で動かすか?
2. メールサーバーを自前にする or 外部サービスにするか?
3. MCはどうやって公開する?(NginxでSRVリダイレクト or port forward)
4. ストレージの構成:RAID/NFS/Sambaのどれを採用するか?
/icons/hr.icon
どれから始めたい?たとえばProxmoxのセットアップから一緒にやってもいいし、K8sの構成をまず決めてもOK!
code:プロンプト
trueNASやrancherなどguiで動くのを使ってみたい。サブドメインは持ってないからルーティングで管理できたらな
了解!GUIで管理できるTrueNASやRancherを使いたい、そしてサブドメインじゃなくて[* URLパス(例:example.com/minecraft)でサービスを分けたい]ってことね。そういう構成、わかりやすくて運用しやすいよ。
/icons/hr.icon
🔧 サービス構成イメージ(GUI & パス分け対応)
1. GUIツールを導入する(K8s上 or 単独VM)
table:table
サービス 使うツール 動かす場所 目的
NAS TrueNAS SCALE i7上のVM ファイル共有+ZFSベースのNAS
K8sクラスタ管理 Rancher N100 or i7 (K8s上Pod) GUIでK8sのアプリ管理
リバースプロキシ Nginx Proxy Manager or Traefik N100 パスでのルーティング+Let's Encrypt対応
/icons/hr.icon
2. サービスへのアクセスをURLパスで分ける
例えば example.com にアクセスしたとき:
table:table
URL 行き先
/ Webトップページ or ポータル
/rancher Rancherの管理画面(K8s)
/nas TrueNASのGUI(リバースプロキシでパス変換)
/minecraft MinecraftのWeb管理パネル(Dynmapとか)
/mail Webメール(Roundcube等)
この場合、リバースプロキシは「**パスベースルーティング(Path-based Routing)」」に対応してる必要がある。
おすすめ:
Nginx + 手動設定 → 細かく制御できる
Nginx Proxy Manager → GUIあり、簡単。path routingも可能
Traefik → K8sに強いが、少し学習コストあり
/icons/hr.icon
3. Kubernetes上にRancherをデプロイ(GUI管理)
k3sで軽量Kubernetes構成にして、N100をmasterに
i7もworkerとして参加
RancherはK8s上にHelmでインストールできる(GUI)
他アプリもGUIからデプロイ可能(Nextcloud、マイクラ管理ツールなど)
/icons/hr.icon
4. TrueNASについて
TrueNAS SCALEならLinuxベースでKVMにも対応(Proxmoxと似たUI)
i7のProxmox上にVMで入れるのがおすすめ
SMB/NFS/SFTP/NextcloudまでGUIで全部できる
N100からもマウントすれば分散ストレージになる
/icons/hr.icon
📌 実現の流れ(例)
1. Proxmoxを両方にインストール
2. i7上にTrueNAS SCALEのVMを作成(ストレージもセット)
3. N100上にK3s Masterを構築し、i7をWorkerとして参加
4. K8s上にRancherをデプロイ(GUI)
5. Nginx Proxy ManagerをK8sかLXCで立ち上げ、path routing構成を作る
6. メールサーバーやマイクラを順次追加していく
/icons/hr.icon
☁️ ドメインなしでも公開する方法
Cloudflare Tunnel(無料・サブドメイン不要でHTTPS可)
DuckDNSなどのDDNS + ルーターでポート開放(自宅ルーター次第)
公開はN100に集約 → i7へのリバースプロキシで非公開サービスにアクセス
/icons/hr.icon
一緒にやっていくなら、たとえば次は「ProxmoxとK3sのインストールから始める」か、「まずはリバースプロキシとRancherの動作確認」みたいに進めていこうか?
どこからやりたい?興味あるとこからでOK!
思いついたんだけどIPv6だけだし、一応たくさんサブドメイン作れるわ
NICごとにIP割り当てるか...仮想的に割り当てられるかな?
第二回自宅鯖再構築祭り!