4.17. 사용자 정의 리소스 정의에 노출되지 않는 항목 구성
CRD(Custom Resource Definition)는 AMQ Broker에 대해 수정할 수 있는 구성 항목의 스키마입니다. 해당 CR(사용자 정의 리소스) 인스턴스의 CRD에 있는 구성 항목의 값을 지정할 수 있습니다. Operator는 CR 인스턴스에서 각 브로커 컨테이너에 대한 구성을 생성합니다.
brokerProperties
속성에 항목을 추가하여 CRD에 노출되지 않은 구성 항목을 CR에 포함할 수 있습니다. brokerProperties
속성에 포함된 항목은 브로커 Pod에서 속성 파일로 마운트되는 시크릿에 저장됩니다. 시작 시 XML 구성을 적용한 후 속성 파일이 내부 java 구성 빈에 적용됩니다.
다음 예에서는 구성 빈에 단일 속성이 적용됩니다.
spec: ... brokerProperties: - globalMaxSize=500m ...
다음 예제에서는 다른 브로커와의 메시지를 미러링하는 target
이라는 브로커 연결을 생성하기 위해 구성 빈의 중첩된 컬렉션에 여러 속성이 적용됩니다.
spec: ... brokerProperties - "AMQPConnections.target.uri=tcp://<hostname>:<port>" - "AMQPConnections.target.connectionElements.mirror.type=MIRROR" - "AMQPConnections.target.connectionElements.mirror.messageAcknowledgements=true" - "AMQPConnections.target.connectionElements.mirror.queueCreation=true" - "AMQPConnections.target.connectionElements.mirror.queueRemoval=true" ...
brokerProperties
특성을 사용하면 OpenShift Container Platform에서 AMQ Broker에 대해 구성할 수 없는 여러 구성 항목에 액세스할 수 있습니다. 잘못 사용된 경우 일부 속성은 배포에 심각한 영향을 미칠 수 있습니다. 이 방법을 사용하여 속성을 구성할 때는 항상 주의하십시오.
절차
배포의 CR을 편집합니다.
OpenShift 웹 콘솔 사용:
다음 명령을 실행합니다.
oc edit ActiveMQArtemis <CR instance name> -n <namespace>
OpenShift Container Platform 웹 콘솔 사용:
- 브로커 배포를 위해 프로젝트에 CR을 배포할 수 있는 권한이 있는 사용자로 콘솔에 로그인합니다.
-
왼쪽 창에서
를 클릭합니다. - Red Hat Integration - AMQ Broker for RHEL 8 (Multiarch) operator를 클릭합니다.
- AMQ Broker 탭을 클릭합니다.
- ActiveMQArtemis 인스턴스 이름의 이름을 클릭합니다.
YAML 탭을 클릭합니다.
콘솔에서 YAML 편집기가 열리고 CR 인스턴스를 편집할 수 있습니다.
CR의
spec
섹션에서brokerProperties
요소를 추가하고 속성 목록을 camel-case 형식으로 추가합니다. 예를 들면 다음과 같습니다.spec: ... brokerProperties: - globalMaxSize=500m - maxDiskUsage=85 ...
- CR을 저장합니다.
(선택 사항) 구성 상태를 확인합니다.
OpenShift 명령줄 인터페이스 사용:
브로커의 상태 조건을 가져옵니다.
$ oc get activemqartemis -o yaml
OpenShift 웹 콘솔 사용:
- 브로커 배포를 위한 CR의 status 섹션으로 이동합니다.
BrokerPropertiesApplied
상태 정보에서reason
필드의 값을 확인합니다. 예를 들면 다음과 같습니다.- lastTransitionTime: "2023-02-06T20:50:01Z" message: "" reason: Applied status: "True" type: BrokerPropertiesApplied
가능한 값은 다음과 같습니다.
적용됨
- OpenShift Container Platform은 업데이트된 시크릿을 각 브로커 Pod의 속성 파일에 전파했습니다.
AppliedWithError
-
OpenShift Container Platform은 업데이트된 시크릿을 각 브로커 Pod의 속성 파일에 전파했습니다. 그러나
brokerProperties
구성에서 오류가 발견되었습니다. CR의status
섹션에서message
필드를 확인하여 잘못된 속성을 식별하고 CR에서 수정합니다. OutOfSync
- OpenShift Container Platform은 업데이트된 보안을 각 브로커 Pod의 속성 파일에 아직 전달하지 않았습니다. OpenShift Container Platform에서 업데이트된 보안을 각 Pod에 전파하면 상태가 업데이트됩니다.
브로커는 포드에 마운트된 속성 파일에 대한 업데이트를 포함하여 구성 변경 사항을 주기적으로 확인하고 변경 사항이 탐지되면 구성을 다시 로드합니다. 그러나 브로커가 시작될 때만 읽기 전용 속성으로 업데이트 (예: JVM 설정은 브로커를 다시 시작할 때까지 다시 로드되지 않습니다. 다시 로드되는 속성에 대한 자세한 내용은 AMQ Broker 구성에서 구성 업데이트 다시 로드를 참조하십시오.
추가 정보
CR의 brokerProperties
요소에서 구성할 수 있는 속성 목록은 AMQ Broker 구성의 Broker 속성을 참조하십시오.