インフラストラクチャ
セルフホスト型 Kubernetes 基盤
Proxmox ホスト 1 台の上で動く 4 ノードの K3s クラスタ。すべての層を Git で宣言しています。
詳細を見る
- 課題
- 1 台のサーバー上で 20 以上のサービスを運用しており、変更はすべて手作業でした。再現性がなく、作り直すには文書化されていない手順を一つずつ思い出す必要がありました。
- 実装内容
- Terraform で VM を作成し、Ansible で 4 ノードの K3s クラスタを構築、ArgoCD がすべてのワークロードを Git から同期します。あわせて MetalLB と Nginx Ingress、スケジュールスナップショット付きの Longhorn、TLS のための cert-manager 内部 CA、自作エクスポーターと Discord 通知を含む Prometheus / Grafana / Alertmanager を構成しました。
- 成果
- 12 のアプリケーションを Git から同期し、構成のずれは自動で修正、本番反映はプルリクエスト経由です。作り直しは「週末仕事」ではなくパイプラインの実行になり、復旧手順書は実際の障害で検証済みです。
- 構成図
- 詳細説明はご要望に応じて
- リポジトリは非公開
クラスタ構成
クラスタ構成
Proxmox ホスト — 物理マシン 1 台
- k3s-master コントロールプレーン · VM
- k3s-worker-1 ワーカー · VM
- k3s-worker-2 ワーカー · VM
- k3s-worker-3 ワーカー · VM
wings-vm · Docker ホスト(クラスタ外)
- MetalLB + Nginx Ingress · 安定したアドレス割り当て
- Longhorn · レプリケーションとスケジュールスナップショット
Longhorn はクラスタ内の VM 間でレプリケーションを行いますが、物理の Proxmox ホスト自体は単一障害点のままです。
図 2 — アプリケーション 1 件の構成