tutorial deployment production

ZeroClaw本番デプロイ:Docker、Kubernetes、そしてその間のすべて

ZeroClaws.io

ZeroClaws.io

@zeroclaws

March 21, 2026

9 分で読める

ZeroClaw本番デプロイ:Docker、Kubernetes、そしてその間のすべて

AIエージェントを本番環境にデプロイすることは、ラップトップで動かすこととは別物だ。信頼性、監視、スケーリング、セキュリティ——開発中には問題にならないこれらすべてが本番では重要になる。ZeroClawのアーキテクチャ——シングルバイナリ、依存関係ゼロ、最小限のリソース使用——は本番デプロイメントをほとんどのエージェントフレームワークよりシンプルにするが、「シンプル」は「些細」ではない。

このガイドは全スペクトルをカバーする:小規模デプロイ向けの単一Dockerコンテナ、マルチサービス構成向けのDocker Compose、そしてスケール向けのKubernetes。

Docker:単一コンテナ

最もシンプルな本番デプロイメント。1コンテナ、1エージェント。

Dockerfileを作成する:

```bash FROM alpine:3.19 COPY zeroclaw /usr/local/bin/zeroclaw COPY config.toml /etc/zeroclaw/config.toml RUN chmod +x /usr/local/bin/zeroclaw EXPOSE 3000 VOLUME /data CMD ["zeroclaw", "start", "--config", "/etc/zeroclaw/config.toml", "--data", "/data"] ```

イメージは極小だ。Alpineベース(5MB)+ ZeroClawバイナリ(3.4MB)= 8.4MBのコンテナイメージ。一般的なPythonエージェントフレームワークイメージの800MB-1.2GBと比較してほしい。

ビルドと実行:

```bash docker build -t zeroclaw-agent . docker run -d --name my-agent -p 3000:3000 -v zeroclaw-data:/data --restart unless-stopped zeroclaw-agent ```

ボリュームマウントにより、コンテナ再起動時にも会話履歴とメモリが永続化される。

Docker Compose:エージェント + Ollama

ローカルモデル推論を含むセルフホストスタックの場合:

```bash version: '3.8' services: ollama: image: ollama/ollama volumes: - ollama-models:/root/.ollama deploy: resources: reservations: devices: - capabilities: [gpu]

zeroclaw: image: zeroclaw-agent depends_on: - ollama environment: - ZEROCLAW_PROVIDER_URL=http://ollama:11434/v1 volumes: - zeroclaw-data:/data ports: - "3000:3000" restart: unless-stopped

volumes: ollama-models: zeroclaw-data: ```

これで2つのコンテナでオフライン対応の完全なAIスタックが手に入る。Ollamaがモデルサービングを、ZeroClawがエージェントロジック、メモリ、チャネルを処理する。

Kubernetes:スケールでの本番運用

複数のエージェントを実行したり多数のユーザーに対応するチームには、Kubernetesがオートスケーリング、ヘルスモニタリング、リソース管理を提供する。

Deploymentマニフェスト:

```bash apiVersion: apps/v1 kind: Deployment metadata: name: zeroclaw-agent spec: replicas: 3 selector: matchLabels: app: zeroclaw template: metadata: labels: app: zeroclaw spec: containers: - name: zeroclaw image: zeroclaw-agent:latest resources: requests: memory: "16Mi" cpu: "50m" limits: memory: "64Mi" cpu: "500m" ports: - containerPort: 3000 livenessProbe: httpGet: path: /health port: 3000 initialDelaySeconds: 1 periodSeconds: 10 readinessProbe: httpGet: path: /ready port: 3000 initialDelaySeconds: 1 periodSeconds: 5 volumeMounts: - name: data mountPath: /data volumes: - name: data persistentVolumeClaim: claimName: zeroclaw-data ```

リソースリクエストに注目してほしい:メモリ16Mi、CPU 50m。これは誤植ではない。ZeroClawは本当に16MBのRAMで動作する。8GBのRAMを搭載したKubernetesノードで、数百のZeroClawインスタンスを実行できる。

Horizontal Pod Autoscaler:

```bash apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: zeroclaw-hpa spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: zeroclaw-agent minReplicas: 2 maxReplicas: 20 metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 70 ```

ZeroClawのサブ10msスタートアップにより、新しいPodはほぼ即座にリクエストの処理を開始できる——ウォームアップ期間なし、遅いJVMスタートアップなし、依存関係のロードなし。オートスケーラーは数分ではなく数秒でトラフィックスパイクに対応できる。

モニタリング

ZeroClawは`/metrics`でPrometheusメトリクスを公開する:

  • `zeroclaw_requests_total` — 処理されたリクエスト総数
  • `zeroclaw_request_duration_seconds` — リクエストレイテンシのヒストグラム
  • `zeroclaw_memory_entries_total` — メモリデータベースのサイズ
  • `zeroclaw_active_channels` — 接続中のメッセージングチャネル
  • `zeroclaw_tool_invocations_total` — タイプ別ツール使用状況

Prometheusスクレイプ設定:

```bash scrape_configs: - job_name: 'zeroclaw' kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: [__meta_kubernetes_pod_label_app] regex: zeroclaw action: keep ```

Grafanaダッシュボードと組み合わせれば、エージェントのパフォーマンス、メモリ増加、チャネルの健全性を可視化できる。

本番環境のセキュリティ強化

本番デプロイメントには、開発デフォルトを超えた追加のセキュリティが必要だ:

ネットワークポリシー: Pod間通信を制限する。ZeroClawはモデル推論サービス(OllamaまたはクラウドAPI)とメッセージングプラットフォームAPIにのみ到達する必要がある。

```bash apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: zeroclaw-netpol spec: podSelector: matchLabels: app: zeroclaw policyTypes: - Egress egress: - to: - podSelector: matchLabels: app: ollama ports: - port: 11434 - to: - ipBlock: cidr: 0.0.0.0/0 ports: - port: 443 ```

シークレット管理: APIキーとボットトークンはKubernetes Secretsから取得すべきで、環境変数やイメージに焼き込まれた設定ファイルからではない。

読み取り専用ファイルシステム: コンテナファイルシステムを読み取り専用でマウントし、データディレクトリのみ書き込み可能なボリュームにする。

非rootでの実行: ZeroClawはroot権限を必要としない。`securityContext.runAsNonRoot: true`で非rootユーザーとして実行する。

デプロイメント判断ツリー

  • シングルユーザー、常時稼働: VPSまたはホームサーバー上のDockerコンテナ。最もシンプルなセットアップ、最低コスト。
  • 小規模チーム(2-10名): ローカル推論用にOllama付きDocker Compose、または利便性のためにクラウドAPI。
  • 組織(10名以上): オートスケーリング、モニタリング、セキュリティポリシー付きのKubernetes。
  • エンタープライズ(規制産業): コンテナレベル隔離のためのKubernetes + NVIDIA OpenShell、またはコンプライアンスコントロール付き専用インフラ。

ZeroClawのリソース効率のおかげで、最もシンプルなデプロイメントから始めて、アーキテクチャを変更せずにスケールアップできる。DockerコンテナもKubernetes Podも、同じバイナリを同じ設定で実行する。アップグレードパスはインフラの追加であり、エージェントの書き直しではない。

ZeroClaw で AI Agent の構築を始めよう

新リリース、連携、Rust製エージェントインフラの最新情報をお届け。スパムなし、いつでも解除可能。