ビジネストラフィックが予期せず急増した場合は、Knativeのelasticコンテナインスタンスにデプロイされたポッドを使用できます。 これにより、実際の使用量に基づいてリソースの料金を支払うことができます。
前提条件
Knativeはクラスターにデプロイされています。 詳細については、「」「Knativeのデプロイ」をご参照ください。
ack-virtual-nodeコンポーネントがデプロイされています。 このコンポーネントは、エラスティックコンテナインスタンスを使用する場合に必要です。 詳細については、「クラスターへのack-virtual-nodeのデプロイ」をご参照ください。
手順
Knativeサービスを作成し、サービスに
alibabacloud.com/eci=true
ラベルを追加し、k8s.aliyun.com/eci-use-specs
注釈を追加して、使用するエラスティックコンテナインスタンスのタイプを指定します。 次に、kubectl apply
コマンドを実行してYAMLファイルをデプロイします。テンプレートのサンプル
apiVersion: serving.knative.dev/v1 kind: Service metadata: name: helloworld-go namespace: vk spec: template: metadata: labels: alibabacloud.com/eci: "true" # Add the label. annotations: k8s.aliyun.com/eci-use-specs: "2-4Gi" # Specify the type of elastic container instance. spec: containers: - env: - name: TARGET value: "Knative" image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56
設定が完了したら、次のコマンドを実行して、設定が成功したことを確認します。
kubectl -n vk get pod -o wide
期待される出力:
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES helloworld-go-dqqhv-deployment-6d54c9c8dc-hkjwn 2/2 Running 0 40s 192.XX.0.80 virtual-node-eci-0 <none> <none>
出力は、2つのElastic Container Instanceベースのポッドが作成されたことを示します。
関連ドキュメント
Knativeを使用する場合、Elastic Container Instanceベースのポッドを自動的にスケールアウトしてトラフィックスパイクを処理し、残りの時間にElastic Compute Service (ECS) ベースのポッドを使用する場合は、「KnativeでECSインスタンスとelasticコンテナインスタンスの両方を使用する」をご参照ください。
Elastic Container Instanceが提供するイメージキャッシュ機能を使用して、イメージプルを高速化し、インスタンス作成時間を短縮できます。 詳細については、「イメージキャッシュを使用したKnative Servicesのポッド作成の高速化」をご参照ください。