3.4. Operator 기반 브로커 배포 생성


3.4.1. 기본 브로커 인스턴스 배포

다음 절차에서는 CR(사용자 정의 리소스) 인스턴스를 사용하여 기본 브로커 배포를 생성하는 방법을 보여줍니다.

참고

사전 요구 사항

프로세스

Operator를 성공적으로 설치하면 Operator가 실행되고 CR과 관련된 변경 사항을 수신 대기합니다. 이 예제 절차에서는 CR 인스턴스를 사용하여 프로젝트에 기본 브로커를 배포하는 방법을 보여줍니다.

  1. 브로커 배포에 대한 CR(사용자 정의 리소스) 인스턴스 구성을 시작합니다.

    1. OpenShift 명령줄 인터페이스 사용:

      1. 배포를 생성하는 프로젝트에 CR을 배포할 수 있는 권한이 있는 사용자로 OpenShift에 로그인합니다.

        oc login -u <user> -p <password> --server=<host:port>
        Copy to Clipboard Toggle word wrap
      2. 다운로드 및 추출한 Operator 설치 아카이브의 deploy/crs 디렉터리에 포함된 broker_activemqartemis_cr.yaml 이라는 샘플 CR 파일을 엽니다.
    2. OpenShift Container Platform 웹 콘솔 사용:

      1. 배포를 생성하는 프로젝트에 CR을 배포할 권한이 있는 사용자로 콘솔에 로그인합니다.
      2. 기본 브로커 CRD를 기반으로 새 CR 인스턴스를 시작합니다. 왼쪽 창에서 Administration Custom Resource Definitions 를 클릭합니다.
      3. ActiveMQArtemis CRD를 클릭합니다.
      4. Instances 탭을 클릭합니다.
      5. Create ActiveMQArtemis 를 클릭합니다.

        콘솔에서 YAML 편집기가 열리고 CR 인스턴스를 구성할 수 있습니다.

    기본 브로커 배포의 경우 아래 표시된 구성과 유사할 수 있습니다.

    apiVersion: broker.amq.io/v1beta1
    kind: ActiveMQArtemis
    metadata:
      name: ex-aao
    spec:
      deploymentPlan:
        size: 1
        image: placeholder
        requireLogin: false
        persistenceEnabled: true
        journalType: nio
        messageMigration: true
    Copy to Clipboard Toggle word wrap

    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 선택기에서 이 레이블을 사용할 수 있습니다(예:).

  2. size 속성은 배포할 브로커 수를 지정합니다. 2 이상의 값은 클러스터형 브로커 배포를 지정합니다. 그러나 단일 브로커 인스턴스를 배포하려면 값이 1 로 설정되어 있는지 확인합니다.
  3. CR 인스턴스를 배포합니다.

    1. OpenShift 명령줄 인터페이스 사용:

      1. CR 파일을 저장합니다.
      2. 브로커 배포를 생성하는 프로젝트로 전환합니다.

        $ oc project <project_name>
        Copy to Clipboard Toggle word wrap
      3. CR 인스턴스를 생성합니다.

        $ oc create -f <path/to/custom_resource_instance>.yaml
        Copy to Clipboard Toggle word wrap
    2. OpenShift 웹 콘솔 사용:

      1. CR 구성을 완료하면 생성 을 클릭합니다.
  4. OpenShift Container Platform 웹 콘솔에서 Workloads StatefulSets 를 클릭합니다. ex-aao-ss 라는 새로운 StatefulSet이 표시됩니다.

    1. ex-aao-ss StatefulSet을 클릭합니다. CR에 정의한 단일 브로커에 해당하는 하나의 Pod가 있는지 확인합니다.
    2. StatefulSet에서 Pods 탭을 클릭합니다. ex-aao-ss s Pod를 클릭합니다. 실행 중인 Pod의 이벤트 탭에 브로커 컨테이너가 시작되었는지 확인합니다. 로그 탭에는 브로커 자체가 실행 중임을 보여줍니다.
  5. 브로커가 정상적으로 실행 중인지 테스트하려면 브로커 Pod의 쉘에 액세스하여 일부 테스트 메시지를 보냅니다.

    1. OpenShift Container Platform 웹 콘솔 사용:

      1. 워크로드 포드 를 클릭합니다.
      2. ex-aao-ss s Pod를 클릭합니다.
      3. 터미널 탭을 클릭합니다.
    2. OpenShift 명령줄 인터페이스 사용:

      1. 프로젝트의 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
        Copy to Clipboard Toggle word wrap
      2. 브로커 Pod의 쉘에 액세스합니다.

        $ oc rsh ex-aao-ss-0
        Copy to Clipboard Toggle word wrap
  6. 쉘에서 artemis 명령을 사용하여 일부 테스트 메시지를 보냅니다. URL에서 브로커 Pod의 내부 IP 주소를 지정합니다. 예를 들면 다음과 같습니다.

    sh-4.2$ ./amq-broker/bin/artemis producer --url tcp://10.129.2.15:61616 --destination queue://demoQueue
    Copy to Clipboard Toggle word wrap

    이전 명령은 브로커에서 demoQueue 라는 큐를 자동으로 생성하고 기본 수량의 1000개의 메시지를 큐로 보냅니다.

    다음과 유사한 출력이 표시됩니다.

    Connection brokerURL = tcp://10.129.2.15:61616
    Producer ActiveMQQueue[demoQueue], thread=0 Started to calculate elapsed time ...
    
    Producer ActiveMQQueue[demoQueue], thread=0 Produced: 1000 messages
    Producer ActiveMQQueue[demoQueue], thread=0 Elapsed time in second : 3 s
    Producer ActiveMQQueue[demoQueue], thread=0 Elapsed time in milli second : 3492 milli seconds
    Copy to Clipboard Toggle word wrap

추가 리소스

3.4.2. 클러스터형 브로커 배포

프로젝트에서 두 개 이상의 브로커 Pod가 실행 중인 경우 Pod는 브로커 클러스터를 자동으로 형성합니다. 클러스터된 구성을 사용하면 브로커가 로드 밸런싱을 위해 서로 연결하고 필요에 따라 메시지를 재배포할 수 있습니다.

다음 절차에서는 클러스터형 브로커를 배포하는 방법을 보여줍니다. 기본적으로 이 배포의 브로커는 요청 부하 분산에서 사용됩니다. 즉, 브로커는 소비자와 일치하는 다른 브로커에게만 메시지를 전달합니다.

사전 요구 사항

프로세스

  1. 기본 브로커 배포에 사용한 CR 파일을 엽니다.
  2. 클러스터형 배포의 경우 deploymentPlan.size 값이 2 이상이어야 합니다. 예를 들면 다음과 같습니다.

    apiVersion: broker.amq.io/v1beta1
    kind: ActiveMQArtemis
    metadata:
      name: ex-aao
    spec:
      deploymentPlan:
        size: 4
        image: placeholder
        ...
    Copy to Clipboard Toggle word wrap
    참고

    metadata 섹션에는 namespace 속성을 포함하고 OpenShift Container Platform 웹 콘솔을 사용하여 CR 인스턴스를 생성하는 경우에만 값을 지정해야 합니다. 지정해야 하는 값은 브로커 배포를 위한 OpenShift 프로젝트의 이름입니다.

  3. 수정된 CR 파일을 저장합니다.
  4. 이전에 기본 브로커 배포를 생성한 프로젝트에 CR을 배포할 수 있는 권한이 있는 사용자로 OpenShift에 로그인합니다.

    $ oc login -u <user> -p <password> --server=<host:port>
    Copy to Clipboard Toggle word wrap
  5. 이전에 기본 브로커 배포를 생성한 프로젝트로 전환합니다.

    $ oc project <project_name>
    Copy to Clipboard Toggle word wrap
  6. 명령줄에서 변경 사항을 적용합니다.

    $ oc apply -f <path/to/custom_resource_instance>.yaml
    Copy to Clipboard Toggle word wrap

    OpenShift Container Platform 웹 콘솔에서 CR에 지정된 수에 따라 추가 브로커 Pod가 프로젝트에서 시작됩니다. 기본적으로 프로젝트에서 실행되는 브로커는 클러스터형입니다.

  7. 각 Pod의 로그 탭을 엽니다. 로그는 OpenShift가 각 브로커에 클러스터 연결 브릿지를 설정했음을 보여줍니다. 특히 로그 출력에는 다음과 같은 행이 포함됩니다.

    targetConnector=ServerLocatorImpl (identity=(Cluster-connection-bridge::ClusterConnectionBridge@6f13fb88
    Copy to Clipboard Toggle word wrap

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 속성 값을 변경하는 것 외에도 기존 브로커를 다시 시작합니다. 배포에 브로커가 여러 개 있는 경우 한 번에 하나의 브로커만 다시 시작됩니다.
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동