4장. OpenShift Serverless 애플리케이션 구성
4.1. Serving에 대한 멀티컨테이너 지원
단일 Knative 서비스를 사용하여 멀티컨테이너 Pod를 배포할 수 있습니다. 이 방법은 애플리케이션 책임을 작고 특수화된 부분으로 분리하는 데 유용합니다.
4.1.1. 멀티컨테이너 서비스 구성
멀티컨테이너 지원은 기본적으로 활성화되어 있습니다. 서비스에서 여러 컨테이너를 지정하여 멀티컨테이너 Pod를 생성할 수 있습니다.
프로세스
추가 컨테이너를 포함하도록 서비스를 수정합니다. 하나의 컨테이너만 요청을 처리할 수 있으므로 하나의
컨테이너에 대한 포트
를 지정합니다. 다음은 두 개의 컨테이너가 있는 구성의 예입니다.여러 컨테이너 구성
apiVersion: serving.knative.dev/v1 kind: Service ... spec: template: spec: containers: - name: first-container 1 image: gcr.io/knative-samples/helloworld-go ports: - containerPort: 8080 2 - name: second-container 3 image: gcr.io/knative-samples/helloworld-java
4.1.2. 멀티컨테이너 서비스 검색
여러 컨테이너에 대한 준비 및 활성 프로브를 지정할 수 있습니다. 이 기능은 기본적으로 활성화되어 있지 않으며 KnativeServing
CR(사용자 정의 리소스)을 사용하여 구성해야 합니다.
프로세스
KnativeServing
CR에서multi-container-probing
기능을 활성화하여 서비스에 대한 멀티 컨테이너 프로빙을 구성합니다.멀티컨테이너 검사 구성
... spec: config: features: "multi-container-probing": enabled 1 ...
- 1
- Multi-container-probing 기능
업데이트된
KnativeServing
CR을 적용합니다.$ 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