3.4. Operator 기반 브로커 배포 생성
3.4.1. 기본 브로커 인스턴스 배포 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 CR(사용자 정의 리소스) 인스턴스를 사용하여 기본 브로커 배포를 생성하는 방법을 보여줍니다.
여러 사용자 정의 리소스(CR) 인스턴스를 배포하여 지정된 OpenShift 프로젝트에서 두 개 이상의 브로커 배포를 생성할 수 있지만 일반적으로 프로젝트에 단일 브로커 배포를 생성한 다음 주소를 위해 여러 CR 인스턴스를 배포할 수 있습니다.
별도의 프로젝트에서 브로커 배포를 생성하는 것이 좋습니다.
AMQ Broker 7.12에서 다음 항목을 구성하려면 CR을 처음 배포하기 전에 기본 브로커 CR 인스턴스에 적절한 구성을 추가해야 합니다.
사전 요구 사항
AMQ Broker Operator가 이미 설치되어 있어야 합니다.
- OpenShift CLI(명령줄 인터페이스)를 사용하여 AMQ Broker Operator를 설치하려면 3.2절. “CLI를 사용하여 Operator 설치” 를 참조하십시오.
- OperatorHub 그래픽 인터페이스를 사용하여 AMQ Broker Operator를 설치하려면 3.3절. “OperatorHub를 사용하여 Operator 설치” 를 참조하십시오.
- Operator가 브로커 배포에 사용할 브로커 컨테이너 이미지를 선택하는 방법을 이해해야 합니다. 자세한 내용은 2.7절. “Operator에서 컨테이너 이미지를 선택하는 방법”의 내용을 참조하십시오.
- AMQ Broker 7.3부터 새 버전의 Red Hat Ecosystem Catalog를 사용하여 컨테이너 이미지에 액세스합니다. 이 새 버전의 레지스트리를 사용하려면 이미지에 액세스하기 전에 인증된 사용자가되어야 합니다. 이 섹션의 절차를 수행하려면 먼저 Red Hat Container Registry Authentication 에 설명된 단계를 완료해야 합니다.
프로세스
Operator를 성공적으로 설치하면 Operator가 실행되고 CR과 관련된 변경 사항을 수신 대기합니다. 이 예제 절차에서는 CR 인스턴스를 사용하여 프로젝트에 기본 브로커를 배포하는 방법을 보여줍니다.
브로커 배포에 대한 CR(사용자 정의 리소스) 인스턴스 구성을 시작합니다.
OpenShift 명령줄 인터페이스 사용:
배포를 생성하는 프로젝트에 CR을 배포할 수 있는 권한이 있는 사용자로 OpenShift에 로그인합니다.
oc login -u <user> -p <password> --server=<host:port>
oc login -u <user> -p <password> --server=<host:port>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
다운로드 및 추출한 Operator 설치 아카이브의
deploy/crs디렉터리에 포함된broker_activemqartemis_cr.yaml이라는 샘플 CR 파일을 엽니다.
OpenShift Container Platform 웹 콘솔 사용:
- 배포를 생성하는 프로젝트에 CR을 배포할 권한이 있는 사용자로 콘솔에 로그인합니다.
-
기본 브로커 CRD를 기반으로 새 CR 인스턴스를 시작합니다. 왼쪽 창에서
를 클릭합니다. - ActiveMQArtemis CRD를 클릭합니다.
- Instances 탭을 클릭합니다.
Create ActiveMQArtemis 를 클릭합니다.
콘솔에서 YAML 편집기가 열리고 CR 인스턴스를 구성할 수 있습니다.
기본 브로커 배포의 경우 아래 표시된 구성과 유사할 수 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow broker_activemqartemis_cr.yaml샘플 CR 파일에서image속성이자리 표시자의 기본값으로 설정되어 있는지 확인합니다. 이 값은 기본적으로image속성이 배포에 사용할 브로커 컨테이너 이미지를 지정하지 않음을 나타냅니다. Operator에서 사용할 적절한 브로커 컨테이너 이미지를 결정하는 방법을 알아보려면 2.7절. “Operator에서 컨테이너 이미지를 선택하는 방법” 를 참조하십시오.참고broker_activemqartemis_cr.yaml샘플 CR은ex-aao의 이름 지정 규칙을 사용합니다. 이 명명 규칙은 CR이 AMQ Broker Operator 의 예제 리소스임을 나타냅니다. AMQ Broker는 ActiveMQ Artemis 프로젝트를 기반으로 합니다. 이 샘플 CR을 배포할 때 결과 StatefulSet은ex-aao-ss라는 이름을 사용합니다. 또한 배포의 브로커 Pod는 StatefulSet 이름(예:ex-aao-ss-0,ex-aao-ss-1등)을 직접 기반으로 합니다. CR의 애플리케이션 이름은 배포에 StatefulSet의 레이블로 표시됩니다. Pod 선택기에서 이 레이블을 사용할 수 있습니다(예:).-
size속성은 배포할 브로커 수를 지정합니다.2이상의 값은 클러스터형 브로커 배포를 지정합니다. 그러나 단일 브로커 인스턴스를 배포하려면 값이1로 설정되어 있는지 확인합니다. CR 인스턴스를 배포합니다.
OpenShift 명령줄 인터페이스 사용:
- CR 파일을 저장합니다.
브로커 배포를 생성하는 프로젝트로 전환합니다.
oc project <project_name>
$ oc project <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow CR 인스턴스를 생성합니다.
oc create -f <path/to/custom_resource_instance>.yaml
$ oc create -f <path/to/custom_resource_instance>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
OpenShift 웹 콘솔 사용:
- CR 구성을 완료하면 생성 을 클릭합니다.
OpenShift Container Platform 웹 콘솔에서
를 클릭합니다. ex-aao-ss라는 새로운 StatefulSet이 표시됩니다.- ex-aao-ss StatefulSet을 클릭합니다. CR에 정의한 단일 브로커에 해당하는 하나의 Pod가 있는지 확인합니다.
- StatefulSet에서 Pods 탭을 클릭합니다. ex-aao-ss s Pod를 클릭합니다. 실행 중인 Pod의 이벤트 탭에 브로커 컨테이너가 시작되었는지 확인합니다. 로그 탭에는 브로커 자체가 실행 중임을 보여줍니다.
브로커가 정상적으로 실행 중인지 테스트하려면 브로커 Pod의 쉘에 액세스하여 일부 테스트 메시지를 보냅니다.
OpenShift Container Platform 웹 콘솔 사용:
-
를 클릭합니다. - ex-aao-ss s Pod를 클릭합니다.
- 터미널 탭을 클릭합니다.
-
OpenShift 명령줄 인터페이스 사용:
프로젝트의 Pod 이름 및 내부 IP 주소를 가져옵니다.
oc get pods -o wide NAME STATUS IP amq-broker-operator-54d996c Running 10.129.2.14 ex-aao-ss-0 Running 10.129.2.15
$ oc get pods -o wide NAME STATUS IP amq-broker-operator-54d996c Running 10.129.2.14 ex-aao-ss-0 Running 10.129.2.15Copy to Clipboard Copied! Toggle word wrap Toggle overflow 브로커 Pod의 쉘에 액세스합니다.
oc rsh ex-aao-ss-0
$ oc rsh ex-aao-ss-0Copy to Clipboard Copied! Toggle word wrap Toggle overflow
쉘에서
artemis명령을 사용하여 일부 테스트 메시지를 보냅니다. URL에서 브로커 Pod의 내부 IP 주소를 지정합니다. 예를 들면 다음과 같습니다../amq-broker/bin/artemis producer --url tcp://10.129.2.15:61616 --destination queue://demoQueue
sh-4.2$ ./amq-broker/bin/artemis producer --url tcp://10.129.2.15:61616 --destination queue://demoQueueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이전 명령은 브로커에서
demoQueue라는 큐를 자동으로 생성하고 기본 수량의 1000개의 메시지를 큐로 보냅니다.다음과 유사한 출력이 표시됩니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
추가 리소스
- 기본 브로커 CR(사용자 정의 리소스)에 대한 전체 구성 참조는 8.1절. “사용자 정의 리소스 구성 참조” 에서 참조하십시오.
- 실행 중인 브로커를 AMQ 관리 콘솔에 연결하는 방법을 알아보려면 5장. Operator 기반 브로커 배포를 위한 AMQ 관리 콘솔에 연결 를 참조하십시오.
3.4.2. 클러스터형 브로커 배포 링크 복사링크가 클립보드에 복사되었습니다!
프로젝트에서 두 개 이상의 브로커 Pod가 실행 중인 경우 Pod는 브로커 클러스터를 자동으로 형성합니다. 클러스터된 구성을 사용하면 브로커가 로드 밸런싱을 위해 서로 연결하고 필요에 따라 메시지를 재배포할 수 있습니다.
다음 절차에서는 클러스터형 브로커를 배포하는 방법을 보여줍니다. 기본적으로 이 배포의 브로커는 요청 부하 분산에서 사용됩니다. 즉, 브로커는 소비자와 일치하는 다른 브로커에게만 메시지를 전달합니다.
사전 요구 사항
- 기본 브로커 인스턴스가 이미 배포되어 있습니다. 3.4.1절. “기본 브로커 인스턴스 배포”을 참조하십시오.
프로세스
- 기본 브로커 배포에 사용한 CR 파일을 엽니다.
클러스터형 배포의 경우
deploymentPlan.size값이2이상이어야 합니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고metadata섹션에는namespace속성을 포함하고 OpenShift Container Platform 웹 콘솔을 사용하여 CR 인스턴스를 생성하는 경우에만 값을 지정해야 합니다. 지정해야 하는 값은 브로커 배포를 위한 OpenShift 프로젝트의 이름입니다.- 수정된 CR 파일을 저장합니다.
이전에 기본 브로커 배포를 생성한 프로젝트에 CR을 배포할 수 있는 권한이 있는 사용자로 OpenShift에 로그인합니다.
oc login -u <user> -p <password> --server=<host:port>
$ oc login -u <user> -p <password> --server=<host:port>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이전에 기본 브로커 배포를 생성한 프로젝트로 전환합니다.
oc project <project_name>
$ oc project <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 명령줄에서 변경 사항을 적용합니다.
oc apply -f <path/to/custom_resource_instance>.yaml
$ oc apply -f <path/to/custom_resource_instance>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Container Platform 웹 콘솔에서 CR에 지정된 수에 따라 추가 브로커 Pod가 프로젝트에서 시작됩니다. 기본적으로 프로젝트에서 실행되는 브로커는 클러스터형입니다.
각 Pod의 로그 탭을 엽니다. 로그는 OpenShift가 각 브로커에 클러스터 연결 브릿지를 설정했음을 보여줍니다. 특히 로그 출력에는 다음과 같은 행이 포함됩니다.
targetConnector=ServerLocatorImpl (identity=(Cluster-connection-bridge::ClusterConnectionBridge@6f13fb88
targetConnector=ServerLocatorImpl (identity=(Cluster-connection-bridge::ClusterConnectionBridge@6f13fb88Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4.3. 실행 중인 브로커 배포에 사용자 정의 리소스 변경 사항 적용 링크 복사링크가 클립보드에 복사되었습니다!
다음은 실행 중인 브로커 배포에 CR(사용자 정의 리소스) 변경 사항을 적용하는 데 유의해야 할 몇 가지 중요한 사항입니다.
-
CR에서
persistenceEnabled속성을 동적으로 업데이트할 수 없습니다. 이 속성을 변경하려면 클러스터를 제로 브로커로 축소합니다. 기존 CR을 삭제합니다. 그런 다음 변경 사항을 사용하여 CR을 다시 생성하고 재배포하여 배포 크기도 지정합니다. -
3.2.2절. “CLI를 사용하여 Operator 배포” 에 설명된 대로 영구 스토리지(즉, CR에서
persistenceEnabled=true를 설정하여)를 사용하여 브로커 배포를 생성하는 경우 AMQ Broker Operator가 브로커 포드에 대해 영구 볼륨(PV)을 프로비저닝해야 할 수 있습니다. 브로커 배포 크기를 축소하는 경우 Operator는 현재 종료된 브로커 Pod에 대해 이전에 클레임한 PV를 해제합니다. 그러나 CR을 삭제하여 브로커 배포를 제거하는 경우 AMQ Broker Operator 는 배포 시 배포에 남아 있는 브로커 Pod에 대해 PVC(영구 볼륨 클레임)를 릴리스하지 않습니다. 또한 새 배포에서는 릴리스되지 않은 PV를 사용할 수 없습니다. 이 경우 볼륨을 수동으로 해제해야 합니다. 자세한 내용은 OpenShift 문서의 영구 볼륨 릴리스 를 참조하십시오. AMQ Broker 7.12에서 다음 항목을 구성하려면 CR을 처음 배포하기 전에 기본 CR 인스턴스에 적절한 구성을 추가해야 합니다.
- 활성 확장 이벤트 중에 적용하는 추가 변경 사항은 Operator에 의해 대기열에 추가되며 확장이 완료된 경우에만 실행됩니다. 예를 들어 배포 크기를 4개 브로커에서 1개로 축소한다고 가정합니다. 그런 다음 스케일 다운이 진행되는 동안 브로커 관리자 사용자 이름과 암호의 값도 변경합니다. 이 경우 Operator는 배포가 하나의 활성 브로커와 함께 실행될 때까지 사용자 이름과 암호 변경을 대기열에 넣습니다.
-
모든 CR은 배포 크기를 변경하거나 수락자, 커넥터 또는 콘솔의
expose속성 값을 변경하는 것 외에도 기존 브로커를 다시 시작합니다. 배포에 브로커가 여러 개 있는 경우 한 번에 하나의 브로커만 다시 시작됩니다.