| .. | ||
| configs | ||
| scripts | ||
| README.md | ||
PhotonCloud QEMU Test Cluster
QEMU環境でPhotoCloud Bare-Metal Service Meshをテストするための環境構築スクリプト。
構成
- VM数: 2台(node-01, node-02)
- ネットワーク: 192.168.100.0/24(ブリッジモード)
- OS: Ubuntu 22.04 LTS(最小構成)
- デプロイ: Chainfire + NodeAgent + mTLS Agent
セットアップ
1. QEMU/KVMのインストール
sudo apt-get update
sudo apt-get install -y qemu-system-x86_64 qemu-kvm bridge-utils
2. ベースイメージの作成
./scripts/create-base-image.sh
###3. クラスタの起動
./scripts/start-cluster.sh
4. PhotonCloudコンポーネントのデプロイ
./scripts/deploy-photoncloud.sh
テストシナリオ
シナリオ1: プレーンHTTP通信
- node-01でapi-serverを起動(plain mode)
- node-02でworker-serviceを起動(plain mode)
- worker-service → api-server へHTTPリクエスト
- 通信成功を確認
シナリオ2: mTLS有効化
- cert-authorityで証明書を発行
- api-serverをmTLSモードで再起動
- worker-serviceをmTLSモードで再起動
- 通信成功を確認
シナリオ3: 動的ポリシー変更
- Chainfire上でポリシーをplain→mtlsに変更
- NodeAgentがポリシー変更を検知
- mTLS Agentがポリシーを適用
- 通信が継続されることを確認
シナリオ4: サービス発見
- api-serverを2インスタンス起動
- worker-serviceがServiceDiscovery経由で両インスタンスを発見
- ラウンドロビンで負荷分散されることを確認
シナリオ5: ノード障害
- node-01をシャットダウン
- NodeAgentのハートビートが停止
- mTLS Agentがnode-01のインスタンスを除外
- node-02のインスタンスのみに通信が行くことを確認
ディレクトリ構成
testing/qemu-cluster/
├── README.md
├── scripts/
│ ├── create-base-image.sh # ベースイメージ作成
│ ├── start-cluster.sh # クラスタ起動
│ ├── stop-cluster.sh # クラスタ停止
│ └── deploy-photoncloud.sh # PhotonCloud デプロイ
├── images/
│ └── base.qcow2 # ベースイメージ
├── vms/
│ ├── node-01.qcow2 # node-01のディスク
│ └── node-02.qcow2 # node-02のディスク
└── configs/
├── cluster-config.json # クラスタ設定
├── node-01-config.toml # node-01設定
└── node-02-config.toml # node-02設定