コンテンツにスキップ

KubernetesデプロイメントをKnativeサービスに変換する

このトピックでは、KubernetesデプロイメントをKnativeサービスに変換する方法について説明します。

利点

Knativeサービスに変換すると、次の利点があります。

  • サービスインスタンスがアイドル状態になるとインスタンスが0にスケールされるため、サービスインスタンスのフットプリントが削減されます。
  • Knativeサービスの組み込みオートスケーリングにより、パフォーマンスが向上します。

ワークロードがKnativeに適しているかどうかを判断する

一般的に、KubernetesワークロードがKnativeに適している場合、マニフェストの多くを削除してKnativeサービスを作成できます。

考慮すべき3つの側面があります。

  • すべての作業はHTTPによってトリガーされます。
  • コンテナはステートレスです。すべての状態は他の場所に保存されるか、再作成できます。
  • ワークロードはSecretボリュームとConfigMapボリュームのみを使用します。

変換例

次の例は、Kubernetes Nginxデプロイメントとサービスを示し、Knativeサービスに変換する方法を示しています。

Kubernetes Nginxデプロイメントとサービス

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-nginx
spec:
  selector:
    matchLabels:
      run: my-nginx
  replicas: 2
  template:
    metadata:
      labels:
        run: my-nginx
    spec:
      containers:
      - name: my-nginx
        image: nginx
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: my-nginx
  labels:
    run: my-nginx
spec:
  ports:
  - port: 80
    protocol: TCP
  selector:
    run: my-nginx

Knativeサービス

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: my-nginx
spec:
  template:
    spec:
      containers:
      - image: nginx
        ports:
        - containerPort: 80

サイトのトラフィックを理解するために、アナリティクスとCookieを使用しています。お客様のサイトのご利用に関する情報は、その目的のためにGoogleと共有されます。詳細はこちら