特権TUNコンテナ自動プロビジョニング
AegisMesh のバックエンド(management/server/isolation/provisioner.go)には、Go の Docker SDK を直接制御するプロビジョニングエンジンが組み込まれています。
プロビジョナーのコア要件
各テナントのコンテナは、ホストのネットワークスタックと安全に連携するため、以下の特権パラメーターを動的に付与されて起動します。
| パラメーター | 設定値 | 目的・必要性 |
|---|---|---|
| CapAdd | NET_ADMIN | WireGuard トンネルインターフェース(wt0)の生成とルーティングテーブル操作 |
| Devices | /dev/net/tun | ホストカーネルのTUN/TAPドライバとの直接通信 |
| RestartPolicy | unless-stopped | ホストOS再起動時や障害時の自動再復旧 |
| Environment | NB_SETUP_KEY, NB_MANAGEMENT_URL | 起動直後の自動チェックインと認証 |
障害検知と自己修復(Auto-Healing)
プロビジョナーは、バックグラウンドゴルーチンにより、定期的にコンテナのヘルスステータスを監視しています。
- 異常停止検知: メモリ不足(OOM)や外部プロセス起因でコンテナが停止した場合、直ちに再起動を試行。
- 孤立コンテナの刈り取り: データベース上で削除済みのテナントのコンテナがホスト上に残存している場合、安全に検出して破棄(Reconciliation Loop)。