> For the complete documentation index, see [llms.txt](https://docs.digitalhumans.jp/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.digitalhumans.jp/dev/miniprem/kubernetes-overview.md).

# Kubernetes 概要

## マルチクラウド Kubernetes デプロイメント

> ミニプレム（MiniPrem）のデジタルヒューマンを AWS EKS、Azure AKS、Google GKE で本番運用までスケールします

{% hint style="info" %}
本ページの内容はデジタルヒューマン株式会社の正式サポート対象外です。参考情報としてご利用ください。
{% endhint %}

### 目次

* [概要](#overview)
* [クラウドプロバイダー比較](#cloud-provider-comparison)
* [適切なクラウドの選択](#choosing-the-right-cloud)
* [クイックスタート](#quick-start)
* [アーキテクチャ](#architecture)
* [共通機能](#common-features)
* [クラウド別ガイド](#cloud-specific-guides)
* [マルチクラウド管理](#multi-cloud-management)
* [コスト最適化](#cost-optimization)
* [ライセンス](#license)

### 概要

MiniPrem は複数のクラウドプロバイダーで **本番環境向けの Kubernetes デプロイメント** を提供しており、GPU アクセラレーション、オートスケーリング、高可用性を備えたレンダラー（開発コード：Renny）デジタルヒューマンを大規模に展開できます。

#### サポート対象のクラウドプロバイダー

| クラウド           | ステータス  | GPU インスタンス          | GPU メモリ | コスト（10 ノード） |
| -------------- | ------ | ------------------- | ------- | ----------- |
| **AWS EKS**    | ✅ 本番対応 | g5.4xlarge (A10G)   | 24GB    | 約 $8,712/月  |
| **Azure AKS**  | ✅ 本番対応 | NC16as\_T4\_v3 (T4) | 16GB    | 約 $10,800/月 |
| **Google GKE** | 🚧 開発中 | n1-standard-16 + T4 | 16GB    | 未定          |

#### 主な利点

* **🌐 マルチクラウド柔軟性** - お好みのクラウドプロバイダーにデプロイ可能
* **🚀 ワンクリックデプロイ** - インフラストラクチャの自動プロビジョニング（約 30〜50 分）
* **📈 オートスケーリング** - 10〜20 の Renny インスタンスを動的にスケール
* **🎮 GPU アクセラレーション** - タイムスライス対応の NVIDIA GPU Operator
* **🔒 本番グレードのセキュリティ** - プライベートサブネット、ネットワークポリシー、RBAC
* **📊 クラウドネイティブなモニタリング** - ロギングとメトリクスを統合
* **💰 コスト最適化** - GPU タイムスライス、オートスケーリング、スポットインスタンス

### クラウドプロバイダー比較

#### 機能マトリクス

| 機能                | AWS EKS     | Azure AKS      | Google GKE          |
| ----------------- | ----------- | -------------- | ------------------- |
| **デプロイスクリプト**     | ✅ deploy.sh | ✅ deploy.sh    | 🚧 近日公開             |
| **GPU インスタンスタイプ** | g5.4xlarge  | NC16as\_T4\_v3 | n1-standard-16 + T4 |
| **GPU モデル**       | NVIDIA A10G | NVIDIA T4      | NVIDIA T4           |
| **GPU メモリ**       | 24GB GDDR6  | 16GB GDDR6     | 16GB GDDR6          |
| **ノードあたり vCPU**   | 16          | 16             | 16                  |
| **ノードあたり RAM**    | 64GB        | 110GB          | 60GB                |
| **時間単価（ノードあたり）**  | 約 $1.18     | 約 $1.50        | 約 $1.35             |
| **月額コスト（10 ノード）** | 約 $8,712    | 約 $10,800      | 約 $9,720            |
| **デプロイ時間**        | 30〜45 分     | 35〜50 分        | 未定                  |
| **GPU Operator**  | ✅ 自動        | ✅ 自動           | ✅ ネイティブ対応           |
| **タイムスライス**       | ✅ 2 ポッド/GPU | ✅ 1 ポッド/GPU\*  | 未定                  |
| **オートスケーリング**     | ✅ 10〜20 ノード | ✅ 10〜20 ノード    | 未定                  |
| **マルチ AZ**        | ✅ 3 AZ      | ✅ 3 AZ         | 未定                  |
| **モニタリング**        | CloudWatch  | Azure Monitor  | Stackdriver         |
| **ネットワーキング**      | AWS VPC CNI | Azure CNI      | VPC ネイティブ           |

{% hint style="info" %}
**※注:** AKS の T4 インスタンスは VRAM が 16GB（EKS は 24GB）であるため、ポッドあたり 4〜6GB を必要とする Renny ワークロードでは GPU あたり 1 ポッドの構成が推奨されます。
{% endhint %}

#### コスト比較（10 ノード構成）

| コンポーネント        | AWS EKS      | Azure AKS     | Google GKE |
| -------------- | ------------ | ------------- | ---------- |
| **GPU コンピュート** | $8,520       | $10,800       | 未定         |
| **コントロールプレーン** | $73          | $73           | 未定         |
| **コントロールノード**  | $120         | $288          | 未定         |
| **ネットワーキング**   | $135（NAT×3）  | $25（LB）       | 未定         |
| **ストレージ**      | $50          | $75           | 未定         |
| **モニタリング**     | $100         | $125          | 未定         |
| **月額合計**       | **約 $8,998** | **約 $11,386** | 未定         |

{% hint style="info" %}
**💡 コスト削減策:**\
\\

* **リザーブドインスタンス:** コンピュートコストを 30〜40% 削減\\
* **スポットインスタンス:** 開発・テスト環境で 60〜80% 削減\\
* **オートスケーリング:** オフ時間帯で約 40% 削減\\
* **スケジュール停止:** 夜間や週末で約 70% 削減
  {% endhint %}

### 適切なクラウドの選択

#### 判断マトリクス

**AWS EKS を選ぶケース:**

* ✅ AWS インフラと運用ノウハウが既にある
* ✅ 高負荷ワークロード向けに GPU メモリを大きく（24GB）取りたい
* ✅ AKS より時間単価が安い（約 15% 安価）
* ✅ 成熟したエコシステムと豊富なツールが必要
* ✅ AWS 固有サービス（S3、Lambda など）が必要
* ✅ AWS リージョンでのマルチリージョン展開

**Azure AKS を選ぶケース:**

* ✅ Azure インフラと運用ノウハウが既にある
* ✅ Microsoft / Azure 中心の組織体制
* ✅ Azure AD 連携が必須
* ✅ T4 GPU を優先（Unreal Engine との互換性が実績ベースで確認済み）
* ✅ Azure 固有サービス（Cosmos DB、Functions など）が必要
* ✅ Microsoft とのエンタープライズ契約あり

**Google GKE を選ぶケース（近日公開）:**

* ✅ GCP インフラと運用ノウハウが既にある
* ✅ 秒単位課金を希望（最も粒度が細かい）
* ✅ ネイティブな GPU サポート（最も簡単なセットアップ）
* ✅ GCP 固有サービス（BigQuery、Cloud Functions など）が必要
* ✅ ネットワーキングコストが低い

#### リージョン提供状況

**AWS EKS（g5.4xlarge の提供リージョン）**

* ✅ **us-east-1**（バージニア北部） - 主要
* ✅ **us-east-2**（オハイオ） - 推奨
* ✅ **us-west-2**（オレゴン）
* ✅ **eu-west-1**（アイルランド）
* ✅ **ap-southeast-1**（シンガポール）

**Azure AKS（NC16as\_T4\_v3 の提供リージョン）**

* ✅ **eastus**（米国東部） - 主要
* ✅ **westus2**（米国西部 2）
* ✅ **northeurope**（北ヨーロッパ）
* ✅ **westeurope**（西ヨーロッパ）
* ✅ **southeastasia**（東南アジア）

### クイックスタート

#### 前提条件

すべてのクラウドプロバイダーで以下が必要です。

1. **コマンドラインツール:**
   * kubectl >= 1.28.0
   * Terraform >= 1.5.0
   * Helm >= 3.12.0
2. **クラウド別 CLI:**
   * AWS: AWS CLI >= 2.3.0
   * Azure: Azure CLI >= 2.50.0
   * GCP: gcloud SDK >= 400.0
3. **クレデンシャル:**
   * テナント ID および API キー（[サポート窓口](https://support.digitalhumans.jp/)から申請）
   * Harbor クレデンシャル
   * クラウドプロバイダーのクレデンシャル

#### デプロイコマンド

デプロイスクリプトはクラウドプロバイダーを自動検出するほか、明示的に指定することもできます。

```bash
cd kubernetes/

# Automatic cloud detection (recommended)
./scripts/deploy.sh

# Explicit cloud selection
./scripts/deploy.sh --cloud eks   # AWS EKS
./scripts/deploy.sh --cloud aks   # Azure AKS
./scripts/deploy.sh --cloud gke   # Google GKE (coming soon)

# With specific profile (AWS)
./scripts/deploy.sh --cloud eks --profile your-aws-profile
```

#### デプロイのタイムライン

| フェーズ                  | EKS         | AKS         | 説明                    |
| --------------------- | ----------- | ----------- | --------------------- |
| **前提条件チェック**          | 2 分         | 2 分         | ツールとクレデンシャルを確認        |
| **インフラ構築（Terraform）** | 15〜20 分     | 15〜20 分     | VPC/VNet、クラスター、ノードプール |
| **ノード参加**             | 3〜5 分       | 3〜5 分       | ノードがクラスターに参加          |
| **GPU Operator**      | 5〜10 分      | 5〜10 分      | NVIDIA ドライバーをインストール   |
| **Renny デプロイ**        | 5〜10 分      | 5〜10 分      | アプリケーションポッドをデプロイ      |
| **構成設定**              | 3 分         | 3 分         | オートスケーリング、モニタリング      |
| **合計**                | **30〜45 分** | **35〜50 分** | デプロイ完了                |

### アーキテクチャ

#### 共通アーキテクチャ要素

すべてのクラウドデプロイで以下が共通です。

```mermaid
flowchart TD
    cloud["Cloud Provider"]
    vnet["Virtual Network (VPC/VNet)"]
    pub["Public Subnets (3 AZs)"]
    nat["NAT Gateways / Load Balancers"]
    priv["Private Subnets (3 AZs)"]
    k8s["Kubernetes Cluster"]
    cp["Control Plane (Managed)"]
    cnp["Control Node Pool"]
    std["2× Standard compute instances"]
    gnp["GPU Node Pool"]
    gpu["10-20× GPU instances"]
    nvgpu["NVIDIA GPU (A10G/T4)"]
    gpuop["GPU Operator (driver 580)"]
    renny["Renny Pods (1-2 per GPU)"]
    mon["Cloud Monitoring (CloudWatch/Azure Monitor/Stackdriver)"]

    cloud --> vnet
    cloud --> mon
    vnet --> pub
    vnet --> priv
    pub --> nat
    priv --> k8s
    k8s --> cp
    k8s --> cnp
    k8s --> gnp
    cnp --> std
    gnp --> gpu
    gpu --> nvgpu
    gpu --> gpuop
    gpu --> renny
```

#### GPU タイムスライス

GPU タイムスライスを用いると、複数の Renny ポッドが 1 つの物理 GPU を共有できます。

**AWS EKS（24GB A10G）:**

```mermaid
flowchart TD
    host1["g5.4xlarge Node"]
    vgpu1["Virtual GPU 1"]
    vgpu2["Virtual GPU 2"]
    pod1["Renny Pod 1 (~6GB, ~30% utilization)"]
    pod2["Renny Pod 2 (~6GB, ~30% utilization)"]
    total["Total Utilization: ~60% (optimal cost/performance)"]

    host1 --> vgpu1 --> pod1
    host1 --> vgpu2 --> pod2
    pod1 -.- total
    pod2 -.- total
```

**Azure AKS（16GB T4）:**

```mermaid
flowchart TD
    host2["NC16as_T4_v3 Node"]
    fullgpu["Full GPU"]
    akspod["Renny Pod 1 (~4-6GB, ~40% utilization)"]
    reason["Reason: 16GB VRAM best used by single pod"]

    host2 --> fullgpu --> akspod
    akspod -.- reason
```

#### ネットワークアーキテクチャ

すべてのデプロイで類似のネットワーク構成を採用します。

* **WebRTC/UDP:** ポート 22000〜23000（Pixel Streaming）
* **TURN/STUN:** ポート 3478（TCP/UDP）
* **HTTPS:** ポート 443（\*.uneeq.io への送信）
* **プライベートサブネット:** すべての GPU ノードをセキュリティ目的で配置
* **高可用性:** マルチ AZ で耐障害性を確保

### 共通機能

#### NVIDIA GPU Operator

すべてのデプロイで一貫したドライバー管理のため、**NVIDIA GPU Operator v23.9.2** を使用します。

* ✅ ドライバーの自動インストール（ドライバー 580）
* ✅ CUDA 12.8+ サポート
* ✅ GPU タイムスライス構成
* ✅ Kubernetes 向けデバイスプラグイン
* ✅ DCGM メトリクスエクスポーター

**ドライバー選択（対話プロンプト）:**

1. **ドライバー 580+**（推奨） - 最新機能、RTX 5090 に必要
2. **ドライバー 575+**（安定版） - 本番実績あり、最大互換性

#### オートスケーリング

すべてのデプロイで動的なスケーリングがサポートされます。

```bash
# Scale to specific number of instances
./scripts/scale.sh 15

# Works with all cloud providers automatically
```

**スケーリングの上限:**

* **最小:** 10 ノード（本番のベースライン）
* **最大:** 20 ノード（検証済みの容量）
* **スケーリング時間:** ノードあたり約 3〜5 分

#### モニタリング

各クラウドプロバイダーでモニタリングが統合されています。

**AWS EKS:**

* アプリケーションログ用の CloudWatch Logs
* メトリクス用の CloudWatch Container Insights
* アラート用の CloudWatch Alarms

**Azure AKS:**

* コンテナモニタリング用の Azure Monitor
* ログ集約用の Log Analytics
* 通知用の Azure Alerts

**Google GKE（近日公開）:**

* アプリケーションログ用の Cloud Logging
* メトリクス用の Cloud Monitoring
* 通知用の Cloud Alerting

#### 運用

すべてのクラウドで共通の運用コマンドが利用できます。

```bash
# Check deployment status
./scripts/status.sh

# Scale instances
./scripts/scale.sh <number>

# View logs
kubectl logs -n uneeq-renderer <pod-name> -f

# Check GPU status
kubectl get nodes -L nvidia.com/gpu

# Destroy cluster
./scripts/destroy.sh
```

### クラウド別ガイド

#### 詳細セットアップガイド

* [**AWS EKS デプロイメント**](/dev/miniprem/kubernetes-overview/kubernetes-eks.md) - AWS のセットアップ全般、VPC 構成、EKS 固有のトラブルシューティング
* [**Azure AKS デプロイメント**](/dev/miniprem/kubernetes-overview/kubernetes-aks.md) - Azure アカウントの準備、GPU クォータ、サービスプリンシパル、AKS 構成
* [**マルチクラウド比較**](/dev/miniprem/kubernetes-overview/kubernetes-multi-cloud.md) - 詳細なコスト分析、移行戦略、機能パリティ

#### クイックリンク

| タスク             | AWS EKS                                                                                | Azure AKS                                                                              |
| --------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
| **アカウント準備**     | AWS 前提条件                                                                               | Azure セットアップガイド                                                                        |
| **GPU クォータ**    | AWS Service Quotas                                                                     | Azure GPU クォータ                                                                         |
| **デプロイ**        | `./scripts/deploy.sh --cloud eks`                                                      | `./scripts/deploy.sh --cloud aks`                                                      |
| **トラブルシューティング** | [EKS トラブルシューティング](/dev/miniprem/kubernetes-overview/kubernetes-eks.md#troubleshooting) | [AKS トラブルシューティング](/dev/miniprem/kubernetes-overview/kubernetes-aks.md#troubleshooting) |

### マルチクラウド管理

#### MiniPrem Monitor のサポート

**MiniPrem Monitor** ダッシュボードは複数のクラウドプロバイダーのモニタリングに対応しています。

* ✅ クラウドプロバイダーの自動検出
* ✅ マルチクラスターのコンテキスト切り替え
* ✅ ポッドとノードを統合してモニタリング
* ✅ クラウド固有メトリクスの表示
* ✅ プロバイダーごとのコスト追跡

**MiniPrem Monitor へのアクセス:**

```bash
# Standalone monitor deployment
cd docker/
docker-compose -f docker-compose.monitor.yml up -d

# Access at http://localhost:3001
```

#### マルチクラスター kubectl 構成

kubectl のコンテキスト機能で複数のクラウドクラスターを管理します。

```bash
# List all contexts
kubectl config get-contexts

# Switch to EKS cluster
kubectl config use-context arn:aws:eks:us-east-1:123456789012:cluster/renny-prod

# Switch to AKS cluster
kubectl config use-context renny-aks-eastus

# MiniPrem Monitor automatically detects and allows switching
```

### コスト最適化

#### クロスクラウドのコスト戦略

**1. リザーブドインスタンス / リザーブドキャパシティ**

* **AWS:** 1 年リザーブで約 30% 削減、3 年で約 40% 削減
* **Azure:** 1 年リザーブで約 30% 削減、3 年で約 40% 削減
* **削減額:** 10 ノード構成で月額約 $3,000〜4,000

**2. スポット / プリエンプティブルインスタンス**

* **AWS:** EC2 スポット（約 60〜80% 削減、退去通知は 2 分前）
* **Azure:** スポット VM（約 60〜80% 削減、退去通知は 30 秒前）
* **ユースケース:** 開発・テスト環境のみ
* **削減額:** 月額約 $6,000〜8,000（非本番）

**3. オフ時間帯のオートスケーリング**

* 夜間や週末は最小ノード数（2〜5）にスケールダウン
* **削減額:** 約 40% 削減 = 月額 $3,500〜4,500

**4. スケジュール停止**

* オフ時間帯にクラスター全体を停止
* **削減額:** 約 70% 削減 = 月額 $6,000〜8,000
* **注意点:** 起動に 5〜10 分を要する

**5. ライトサイジング**

* 5 ノードから開始し、需要に応じて 10 ノードまで拡張
* 実際の GPU 使用率を監視（目標 60〜70%）
* **削減額:** 初期で約 50% 削減

#### コストモニタリング

すべてのクラウドプロバイダー横断でコストを追跡します。

```bash
# AWS
aws ce get-cost-and-usage --time-period Start=2025-10-01,End=2025-10-16 \
  --granularity DAILY --metrics BlendedCost

# Azure
az consumption usage list --start-date 2025-10-01 --end-date 2025-10-16

# GCP (coming soon)
gcloud billing accounts list
```

***

### ライセンス

このマルチクラウド Kubernetes デプロイメントは MiniPrem プラットフォームの一部であり、MIT ライセンスの下で提供されます。詳細は LICENSE ファイルをご確認ください。

***

### 著作権

**© 2025 UneeQ. All rights reserved.**

[サポート窓口](https://support.digitalhumans.jp/)
