2.5. 사용자 정의 PodSpec 구성
SonataFlow CR(사용자 정의 리소스)에서 사용자 정의 PodSpec 구성을 사용하여 Red Hat OpenShift의 특정 컨테이너 및 배포 요구 사항을 충족할 수 있습니다.
다음과 같은 고급 구성에 이 기능을 사용할 수 있습니다.
- CPU 및 메모리 요청 및 제한 설정
- 사이드카 컨테이너 추가
- 볼륨 및 마운트 구성
- 기본이 아닌 배포 모델 선택
OpenShift Serverless Logic Operator는 SonataFlow CR 내의 .spec.podTemplate 속성을 통해 이러한 사용자 지정을 활성화합니다.
다음 예제는 워크플로우 컨테이너의 환경 변수와 함께 정의된 리소스 요청 및 제한이 있는 SonataFlow CR을 보여줍니다.
apiVersion: sonataflow.org/v1alpha08
kind: SonataFlow
metadata:
name: <name>
spec:
podTemplate:
container:
resources:
limits:
cpu: "250m"
memory: "128Mi"
requests:
cpu: "100m"
memory: "64Mi"
env:
- name: EXAMPLE_VAR
value: "value"
# ...
.spec.podTemplate 속성은 표준 Kubernetes PodSpec API 에 정의된 대부분의 필드를 지원하며 Kubernetes API 검증 규칙이 적용됩니다.
2.5.1. Knative 배포 모델 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 각 SonataFlow 인스턴스는 Kubernetes Deployment 오브젝트로 배포됩니다. 인스턴스를 Knative Serving Service 오브젝트로 배포하려면 .spec.podTemplate.deploymentModel 필드를 knative 로 설정합니다.
예를 들면 다음과 같습니다.
apiVersion: sonataflow.org/v1alpha08
kind: SonataFlow
metadata:
name: <name>
spec:
podTemplate:
deploymentModel: knative
# ...
- dev 프로필에 Knative 배포 모델을 사용하지 마십시오. 이 옵션을 지정하면 Operator에서 해당 옵션을 무시합니다.
- Knative는 유휴 Pod를 종료할 수 있으므로 장기 실행 워크플로우 또는 느린 외부 서비스를 중단할 수 있습니다.
- Pod 종료 후 콜백 상태를 사용하여 워크플로우에 대한 지속성을 활성화합니다.
-
워크플로우에 필요한 경우
initContainers를 명시적으로 활성화합니다. Knative는 기본적으로 비활성화합니다.