第4章 OpenShift Serverless アプリケーションの設定
4.1. Serving のマルチコンテナーサポート リンクのコピーリンクがクリップボードにコピーされました!
単一の Knative サービスを使用してマルチコンテナー Pod をデプロイできます。この方法は、アプリケーションの役割を小さく特化した部分に分離する場合に便利です。
4.1.1. マルチコンテナーサービスの設定 リンクのコピーリンクがクリップボードにコピーされました!
マルチコンテナーのサポートはデフォルトで有効になっています。サービス内の複数のコンテナーを指定してマルチコンテナー Pod を作成できます。
手順
サービスを変更して、追加のコンテナーを追加します。リクエストを処理できるコンテナーは 1 つだけであるため、
ポートは 1 つのコンテナーにのみ指定してください。以下は、2 つのコンテナーの設定例です。複数のコンテナー設定
apiVersion: serving.knative.dev/v1 kind: Service ... spec: template: spec: containers: - name: first-container1 image: gcr.io/knative-samples/helloworld-go ports: - containerPort: 80802 - name: second-container3 image: gcr.io/knative-samples/helloworld-java
4.1.2. マルチコンテナーサービスの調査 リンクのコピーリンクがクリップボードにコピーされました!
複数のコンテナーに対して Readiness プローブと Liveness プローブを指定できます。この機能はデフォルトでは有効になっていないため、KnativeServing カスタムリソース (CR) を使用して設定する必要があります。
手順
KnativeServingCR でmulti-container-probing機能を有効にして、サービスのマルチコンテナープローブを設定します。マルチコンテナープロービング設定
... spec: config: features: "multi-container-probing": enabled1 ...- 1
- マルチコンテナープローブ機能が有効になる
更新された
KnativeServingCR を適用します。$ oc apply -f <filename>指定されたプローブが含まれるようにマルチコンテナーサービスを変更します。
マルチコンテナープロービング
apiVersion: serving.knative.dev/v1 kind: Service ... spec: template: spec: containers: - name: first-container image: ghcr.io/knative/helloworld-go:latest ports: - containerPort: 8080 readinessProbe:1 httpGet: port: 8080 - name: second-container image: gcr.io/knative-samples/helloworld-java readinessProbe:2 httpGet: port: 8090