3.3. 지원 서비스 관리
이 섹션에서는 OpenShift Serverless Logic에 필요한 지원 서비스에 대한 개요를 제공합니다. 특히 OpenShift Serverless Logic Operator를 사용하여 Data Index 서비스 및 작업 서비스 지원 서비스를 구성하고 배포하는 데 중점을 둡니다.
일반적인 OpenShift Serverless Logic 설치에서는 워크플로우 실행을 성공적으로 수행하기 위해 두 서비스를 모두 배포해야 합니다. Data Index 서비스를 사용하면 효율적인 데이터 관리가 가능한 반면, 작업 서비스는 안정적인 작업 처리를 보장합니다.
3.3.1. 지원 서비스 및 워크플로우 통합 링크 복사링크가 클립보드에 복사되었습니다!
지정된 네임스페이스에 지원 서비스를 배포할 때 활성화되거나 비활성화된 배포 중에서 선택할 수 있습니다. 활성화된 배포에서는 OpenShift Serverless Logic Operator가 네임스페이스 내에서 preview 또는 gitops 프로필을 사용하여 워크플로우 배포를 자동으로 가로채고 서비스와 연결하도록 구성합니다.
예를 들어 Data Index 서비스가 활성화되면 상태 변경 이벤트를 전송하도록 워크플로가 자동으로 구성됩니다. 마찬가지로, 작업 서비스를 활성화하면 워크플로우에 시간 초과가 필요할 때마다 작업이 생성됩니다. OpenShift Serverless Logic Operator는 Data Index 서비스에 이벤트를 전송하도록 Job Service를 구성하여 서비스 간 원활한 통합을 가능하게 합니다.
OpenShift Serverless Logic Operator는 지원 서비스 배포뿐만 아니라 워크플로우 실행을 위해 필요한 다른 구성도 관리합니다. 이러한 모든 구성은 자동으로 처리됩니다. SonataFlowPlatform CR에서 지원 서비스 구성만 제공해야 합니다.
지원 서비스 중 하나만 배포하거나 비활성화된 배포를 사용하는 것은 고급 사용 사례입니다. 표준 설치에서는 두 서비스를 모두 활성화하여 원활한 워크플로우 실행을 보장해야 합니다.
3.3.2. SonataFlowPlatform CR로 지원 서비스 배포 링크 복사링크가 클립보드에 복사되었습니다!
지원 서비스를 배포하려면 SonataFlowPlatform CR(사용자 정의 리소스)의 spec.services 섹션에서 dataIndex 및 jobService 하위 필드를 구성합니다. 이 구성은 OpenShift Serverless Logic Operator가 SonataFlowPlatform CR을 적용할 때 각 서비스를 배포하도록 지시합니다.
서비스의 각 구성은 독립적으로 처리되므로 SonataFlowPlatform CR의 다른 구성과 함께 이러한 설정을 사용자 지정할 수 있습니다.
지원 서비스 배포를 위한 다음 스캐폴드 예제 구성을 참조하십시오.
3.3.3. 지원 서비스 범위 링크 복사링크가 클립보드에 복사되었습니다!
SonataFlowPlatform CR(사용자 정의 리소스)을 사용하면 특정 네임스페이스 내에서 지원 서비스를 배포할 수 있습니다. 즉, 자동으로 구성된 지원 서비스 및 워크플로우 통신은 배포된 플랫폼의 네임스페이스로 제한됩니다.
이 기능은 다양한 워크플로우 세트에 대한 별도의 지원 서비스 인스턴스가 필요한 경우 특히 유용합니다. 예를 들어 워크플로 및 지원 서비스와 별도로 애플리케이션을 배포하여 다른 배포와 독립적으로 유지할 수 있습니다.
3.3.4. 지원 서비스 지속성 구성 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Serverless Logic의 지원 서비스에 대한 지속성 구성은 환경의 필요에 따라 임시 또는 PostgreSQL일 수 있습니다. 임시 지속성은 개발 및 테스트에 적합하지만, PostgreSQL 지속성은 프로덕션 환경에 권장됩니다.
3.3.4.1. 임시 지속성 구성 링크 복사링크가 클립보드에 복사되었습니다!
임시 지속성은 각 서비스 전용인 포함된 PostgreSQL 데이터베이스를 사용합니다. OpenShift Serverless Logic Operator는 서비스를 다시 시작할 때마다 이 데이터베이스를 다시 생성하여 개발 및 테스트 목적으로만 적합합니다. 다음 SonataFlowPlatform CR 이외의 추가 구성은 필요하지 않습니다.
3.3.4.2. PostgreSQL 지속성 구성 링크 복사링크가 클립보드에 복사되었습니다!
PostgreSQL 지속성을 위해 클러스터에 PostgreSQL 서버 인스턴스를 설정해야 합니다. 이 인스턴스의 관리는 OpenShift Serverless Logic Operator 제어와 독립적으로 유지됩니다. PostgreSQL 서버를 사용하여 지원 서비스를 연결하려면 적절한 데이터베이스 연결 매개 변수를 구성해야 합니다.
다음 예제를 사용하여 SonataFlowPlatform CR에서 PostgreSQL 지속성을 구성할 수 있습니다.
PostgreSQL 지속성 구성 예
- 1
- PostgreSQL 데이터베이스 서버에 연결할 서비스의 이름입니다.
- 2
- 선택 사항: PostgreSQL 서비스의 네임스페이스를 정의합니다. 기본값은 SonataFlowPlatform 네임스페이스입니다.
- 3
- 지원 서비스 데이터를 저장하기 위한 PostgreSQL 데이터베이스의 이름을 정의합니다.
- 4
- 선택 사항: 지원 서비스 데이터를 저장하기 위한 스키마를 지정합니다. 기본값은
SonataFlowPlatform이름이며-data-index-service또는-jobs-service로 접미사가 지정됩니다. 예를 들어sonataflow-platform-example-data-index-service. - 5
- 선택 사항: PostgreSQL 서비스에 연결할 포트 번호입니다. 기본값은
5432입니다. - 6
- 데이터베이스 액세스를 위한 사용자 이름과 암호가 포함된 시크릿의 이름을 정의합니다.
- 7
- 데이터베이스와 연결할 사용자 이름을 포함하는 시크릿에서 키 이름을 정의합니다.
- 8
- 데이터베이스와 연결할 암호가 포함된 시크릿에 있는 키의 이름을 정의합니다.
각 지속성 필드를 사용하여 각 서비스의 지속성을 독립적으로 구성할 수 있습니다.
다음 명령을 실행하여 PostgreSQL에 액세스할 시크릿을 생성합니다.
oc create secret generic <postgresql_secret_name> \ --from-literal=POSTGRESQL_USER=<user> \ --from-literal=POSTGRESQL_PASSWORD=<password> \ -n <namespace>
$ oc create secret generic <postgresql_secret_name> \
--from-literal=POSTGRESQL_USER=<user> \
--from-literal=POSTGRESQL_PASSWORD=<password> \
-n <namespace>
3.3.4.3. 일반적인 PostgreSQL 지속성 구성 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Serverless Logic Operator는 지원 서비스를 spec.persistence 필드에 구성된 공통 PostgreSQL 서버에 자동으로 연결합니다.
규칙의 경우 다음 우선 순위가 적용됩니다.
-
지원 서비스에 대한 특정 지속성을 구성하는 경우(예:
services.dataIndex.persistence) 해당 구성을 사용합니다. - 서비스에 대한 지속성을 구성하지 않으면 시스템은 현재 플랫폼의 공통 지속성 구성을 사용합니다.
일반적인 PostgreSQL 구성을 사용하는 경우 각 서비스 스키마는 자동으로 SonataFlowPlatform 이름으로 설정되며, 접미사는 -data-index-service 또는 -jobs-service (예: sonataflow-platform-example-data-index-service )로 설정됩니다.
3.3.5. 고급 지원 서비스 구성 링크 복사링크가 클립보드에 복사되었습니다!
지원 서비스에 대한 고급 구성을 적용해야 하는 시나리오에서는 SonataFlowPlatform CR(사용자 정의 리소스)의 podTemplate 필드를 사용합니다. 이 필드를 사용하면 복제본 수, 환경 변수, 컨테이너 이미지 및 초기화 옵션과 같은 구성을 지정하여 서비스 Pod 배포를 사용자 지정할 수 있습니다.
다음 예제를 사용하여 서비스에 대한 고급 설정을 구성할 수 있습니다.
Data Index 서비스에 대한 고급 구성 예
요구 사항에 따라 'services' 필드를 'dataIndex' 또는 'jobService'로 설정할 수 있습니다. 나머지 구성은 동일하게 유지됩니다.
podTemplate 필드는 각 지원 서비스의 배포를 조정할 수 있는 유연성을 제공합니다. 표준 PodSpec API를 따르므로 이러한 필드에 동일한 API 검증 규칙이 적용됩니다.
3.3.6. 클러스터 범위 지원 서비스 링크 복사링크가 클립보드에 복사되었습니다!
SonataFlowClusterPlatform CR(사용자 정의 리소스)을 사용하여 워크플로우에서 사용할 수 있는 클러스터 전체 지원 서비스 세트를 정의할 수 있습니다. 기존 네임스페이스별 SonataFlowPlatform CR을 참조하여 클러스터 전체에서 이러한 서비스 사용을 확장할 수 있습니다.
모든 네임스페이스에 배포된 워크플로우가 example-namespace 와 같이 특정 네임스페이스에 배포된 지원 서비스를 활용할 수 있도록 하는 기본 구성의 다음 예제를 사용할 수 있습니다.
SonataFlowClusterPlatform CR의 예
SonataFlowPlatform.spec.services 에서 해당 네임스페이스를 구성하여 모든 네임스페이스에서 이러한 클러스터 전체 서비스를 덮어쓸 수 있습니다.