4장. Operator 기반 브로커 배포 구성
4.1. Operator에서 브로커 구성을 생성하는 방법 링크 복사링크가 클립보드에 복사되었습니다!
사용자 정의 리소스(CR) 인스턴스를 사용하여 브로커 배포를 구성하기 전에 Operator에서 브로커 구성을 생성하는 방법을 이해해야 합니다.
Operator 기반 브로커 배포를 생성하면 각 브로커의 Pod가 OpenShift 프로젝트의 StatefulSet에서 실행됩니다. 브로커의 애플리케이션 컨테이너는 각 Pod 내에서 실행됩니다.
Operator는 각 Pod를 초기화할 때 Init Container 라는 컨테이너 유형을 실행합니다. OpenShift Container Platform에서 Init Container는 애플리케이션 컨테이너보다 먼저 실행되는 특수 컨테이너입니다. Init Container에는 애플리케이션 이미지에 없는 유틸리티 또는 설정 스크립트가 포함될 수 있습니다.
기본적으로 AMQ Broker Operator는 기본 제공 Init Container를 사용합니다. Init Container는 배포에 기본 CR 인스턴스를 사용하여 각 브로커 애플리케이션 컨테이너에서 사용하는 구성을 생성합니다.
CR에 주소 설정이 지정된 경우 Operator는 기본 구성을 생성한 다음 해당 구성을 CR에 지정된 구성과 병합하거나 교체합니다. 이 프로세스는 다음 섹션에 설명되어 있습니다.
4.1.1. Operator에서 주소 설정 구성을 생성하는 방법 링크 복사링크가 클립보드에 복사되었습니다!
배포에 대한 기본 CR(사용자 정의 리소스) 인스턴스에 주소 설정 구성이 포함된 경우 Operator는 아래에 설명된 대로 각 브로커에 대한 주소 설정 구성을 생성합니다.
Operator는 브로커 애플리케이션 컨테이너 전에 Init Container를 실행합니다. Init Container는 기본 주소 설정 구성을 생성합니다. 기본 주소 설정 구성은 다음과 같습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - CR(사용자 정의 리소스) 인스턴스에서 주소 설정 구성도 지정한 경우 구성을 처리하고 XML로 변환합니다.
-
CR의
applyRule속성 값에 따라 Init Container는 위에 표시된 기본 주소 설정 구성을 CR에 지정한 구성으로 병합 하거나 교체 합니다. 이 병합 또는 교체 결과는 브로커가 사용할 최종 주소 설정 구성입니다. -
Init Container가 브로커 구성(Address settings 포함) 생성을 완료하면 브로커 애플리케이션 컨테이너가 시작됩니다. 시작 시 브로커 컨테이너는 이전에 Init Container에서 사용한 설치 디렉터리에서 해당 구성을 복사합니다.
broker.xml구성 파일에서 주소 설정 구성을 검사할 수 있습니다. 실행 중인 브로커의 경우 이 파일은/home/jboss/amq-broker/etc디렉터리에 있습니다.
추가 리소스
-
CR에서
applyRule속성을 사용하는 예는 4.2.2절. “주소 설정 구성” 를 참조하십시오.
4.1.2. 브로커 Pod의 디렉터리 구조 링크 복사링크가 클립보드에 복사되었습니다!
Operator 기반 브로커 배포를 생성하면 각 브로커의 Pod가 OpenShift 프로젝트의 StatefulSet에서 실행됩니다. 브로커의 애플리케이션 컨테이너는 각 Pod 내에서 실행됩니다.
Operator는 각 Pod를 초기화할 때 Init Container 라는 컨테이너 유형을 실행합니다. OpenShift Container Platform에서 Init Container는 애플리케이션 컨테이너보다 먼저 실행되는 특수 컨테이너입니다. Init Container에는 애플리케이션 이미지에 없는 유틸리티 또는 설정 스크립트가 포함될 수 있습니다.
브로커 인스턴스에 대한 구성을 생성할 때 Init Container는 기본 설치 디렉터리에 포함된 파일을 사용합니다. 이 설치 디렉터리는 Operator가 브로커 Pod에 마운트하는 볼륨과 Init Container 및 브로커 컨테이너 공유에 있습니다. Init Container에서 공유 볼륨을 마운트하는 데 사용하는 경로는 CONFIG_INSTANCE_DIR 이라는 환경 변수에 정의됩니다. CONFIG_INSTANCE_DIR 의 기본값은 /amq/init/config 입니다. 문서에서 이 디렉터리를 < install_dir>이라고 합니다.
CONFIG_INSTANCE_DIR 환경 변수의 값은 변경할 수 없습니다.
기본적으로 설치 디렉터리에는 다음과 같은 하위 디렉터리가 있습니다.
| 하위 디렉터리 | 내용 |
|---|---|
|
| 브로커를 실행하는 데 필요한 바이너리 및 스크립트입니다. |
|
| 구성 파일. |
|
| 브로커 저널입니다. |
|
| broker를 실행하는 데 필요한 root 및 라이브러리입니다. |
|
| 브로커 로그 파일. |
|
| 임시 웹 애플리케이션 파일. |
Init Container가 브로커 구성 생성을 완료하면 브로커 애플리케이션 컨테이너가 시작됩니다. 시작 시 브로커 컨테이너는 이전에 Init Container에서 사용한 설치 디렉터리에서 해당 구성을 복사합니다. 브로커 Pod가 초기화되고 실행되면 브로커의 /home/jboss/amq-broker 디렉터리(및 하위 디렉터리)에 브로커 구성이 있습니다.
추가 리소스
- Operator가 기본 제공 Init Container의 컨테이너 이미지를 선택하는 방법에 대한 자세한 내용은 2.7절. “Operator에서 컨테이너 이미지를 선택하는 방법” 을 참조하십시오.
- 사용자 정의 Init Container 이미지를 빌드하고 지정하는 방법을 알아보려면 4.11절. “사용자 정의 Init Container 이미지 지정” 를 참조하십시오.