コンテナ&DevOpsインフラ

Docker Compose から Kubernetes への変換機

docker-compose.yml を本番環境水準の Kubernetes Deployment、Service、ConfigMap、PVC、Ingress マニフェストに変換します。ブラウザ内完全実行で高いプライバシーを保証。

Quick Presets:
100% In-Browser Private
Kubernetes Manifest Settings
Production Kubernetes YAML
apiVersion: v1
kind: ConfigMap
metadata:
  name: web-config
  namespace: production
  labels:
    app: web
    tier: backend
data:
  NODE_ENV: production
  PORT: "3000"
  REDIS_HOST: redis-service
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: redis-redis-data-pvc
  namespace: production
  labels:
    app: redis
    tier: backend
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: web
  namespace: production
  labels:
    app: web
    tier: backend
spec:
  replicas: 2
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      labels:
        app: web
    spec:
      containers:
        - name: web
          image: myorg/nextjs-app:v1.0.0
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 3000
              name: port-1
          envFrom:
            - configMapRef:
                name: web-config
          resources:
            requests:
              cpu: 100m
              memory: 128Mi
            limits:
              cpu: 500m
              memory: 512Mi
          livenessProbe:
            tcpSocket:
              port: 3000
            initialDelaySeconds: 15
            periodSeconds: 20
          readinessProbe:
            tcpSocket:
              port: 3000
            initialDelaySeconds: 5
            periodSeconds: 10
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: redis
  namespace: production
  labels:
    app: redis
    tier: backend
spec:
  replicas: 2
  selector:
    matchLabels:
      app: redis
  template:
    metadata:
      labels:
        app: redis
    spec:
      containers:
        - name: redis
          image: redis:7-alpine
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 6379
              name: port-1
          volumeMounts:
            - name: redis-data
              mountPath: /data
          resources:
            requests:
              cpu: 100m
              memory: 128Mi
            limits:
              cpu: 500m
              memory: 512Mi
          livenessProbe:
            tcpSocket:
              port: 6379
            initialDelaySeconds: 15
            periodSeconds: 20
          readinessProbe:
            tcpSocket:
              port: 6379
            initialDelaySeconds: 5
            periodSeconds: 10
      volumes:
        - name: redis-data
          persistentVolumeClaim:
            claimName: redis-redis-data-pvc
---
apiVersion: v1
kind: Service
metadata:
  name: web-service
  namespace: production
  labels:
    app: web
    tier: backend
spec:
  type: ClusterIP
  selector:
    app: web
  ports:
    - name: port-1
      port: 3000
      targetPort: 3000
---
apiVersion: v1
kind: Service
metadata:
  name: redis-service
  namespace: production
  labels:
    app: redis
    tier: backend
spec:
  type: ClusterIP
  selector:
    app: redis
  ports:
    - name: port-1
      port: 6379
      targetPort: 6379
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: production-ingress
  namespace: production
  annotations:
    kubernetes.io/ingress.class: nginx
    cert-manager.io/cluster-issuer: letsencrypt-prod
spec:
  tls:
    - hosts:
        - app.example.com
      secretName: app-example-com-tls
  rules:
    - host: app.example.com
      http:
        paths:
          - path: /web
            pathType: Prefix
            backend:
              service:
                name: web-service
                port:
                  number: 3000
          - path: /redis
            pathType: Prefix
            backend:
              service:
                name: redis-service
                port:
                  number: 6379
Advertisement

使い方

  1. ステップ 1: 左側のエディタに docker-compose.yml を貼り付けるか、事前設定プリセット(Next.js + Redis、FastAPI + PostgreSQL)を選択します。
  2. ステップ 2: 対象の Kubernetes Namespace、レプリカ数、および Service Type(ClusterIP、LoadBalancer、NodePort)を設定します。
  3. ステップ 3: 外部への公開ルーティングが必要な場合は Ingress 生成を有効にし、ドメインホスト名を入力します。
  4. ステップ 4: 右側ペインで生成された YAML を確認し、タブを切り替えて確認するか、「.yaml をダウンロード」をクリックして保存します。

よくある質問

Docker Compose から Kubernetes へのマッピングはどのように機能しますか?
docker-compose.yml 内の各サービスは Kubernetes の Deployment と ClusterIP Service に対応付けられます。環境変数は専用の ConfigMap にまとめられ、ポート設定は containerPort と Service targetPort に変換され、名前付きボリュームは PersistentVolumeClaim (PVC) を生成します。
入力した YAML データが外部サーバーに送信されることはありますか?
一切ありません。構文解析およびマニフェスト生成処理はブラウザのクライアント側 JavaScript のみで 100% 実行されます。内部イメージ名やシークレット情報が外部に送信されることはありません。
Docker Compose v2、v3、および Compose Spec に対応していますか?
はい。標準的な Docker Compose フォーマット、配列形式およびキー・バリュー形式の環境変数、ポート公開、ボリュームマウント、リスタートポリシー、カスタムエントリポイントコマンドに対応しています。
なぜ Deployment と Service の両方が生成されるのですか?
Kubernetes では、Deployment がコンテナ Pod の望ましいレプリカ状態を維持・管理します。一方、Service は Pod 間や Ingress コントローラーからの通信に必要な安定した内部 DNS 名と仮想 IP を提供します。
リソース制限(Resource Limits)やヘルスチェックを追加できますか?
はい。設定パネルで「Resource Limits」や「Health Probes」を有効にすると、本番向けの CPU/メモリリクエスト・リミット値、および TCP ソケットによる Liveness / Readiness プローブが自動的に注入されます。

The Senior Full-Stack Production Kit (2026)

Checklists, Docker recipes, and SSR error fixes in one dense PDF.

Get Free Kit

関連ディープダイブ

Dev Kits & DataToolsTagsRSSPrivacy PolicyTerms