4.13. 클러스터 스케일 다운을 지원하는 메시지 마이그레이션 활성화


클러스터의 브로커 수를 축소하고 메시지를 클러스터의 나머지 Pod로 마이그레이션하려면 메시지 마이그레이션을 활성화해야 합니다.

메시지 마이그레이션이 활성화된 클러스터를 축소하면 스케일다운 컨트롤러에서 메시지 마이그레이션 프로세스를 관리합니다.

4.13.1. 메시지 마이그레이션 프로세스의 단계

메시지 마이그레이션 프로세스는 다음 단계를 따릅니다.

  1. 배포의 의도적인 스케일 다운으로 인해 배포의 브로커 Pod가 종료되면 Operator는 메시지 마이그레이션을 준비하기 위해 스케일 다운 사용자 정의 리소스를 자동으로 배포합니다.
  2. 분리된 PV(영구 볼륨)를 확인하려면 축소 컨트롤러에서 볼륨 클레임의 오디널을 확인합니다. 컨트롤러는 볼륨 클레임의 오디널을 프로젝트의 StatefulSet (즉, 브로커 클러스터)에서 실행 중인 브로커 Pod의 항목과 비교합니다.

    볼륨 클레임의 오디널이 브로커 클러스터에서 실행 중인 브로커 Pod의 서수보다 많은 경우 축소 컨트롤러는 해당 ordinal의 브로커 Pod가 종료되고 메시징 데이터를 다른 브로커 Pod로 마이그레이션해야 함을 결정합니다.

  3. scaledown 컨트롤러는 drainer Pod를 시작합니다. drainer Pod는 클러스터의 다른 라이브 브로커 Pod 중 하나에 연결하고 해당 라이브 브로커 Pod로 메시지를 마이그레이션합니다.

다음 그림은 스케일다운 컨트롤러(레이닝 컨트롤러라고도 함)가 실행 중인 브로커 Pod로 메시지를 마이그레이션하는 방법을 보여줍니다.

Ah ocp pod draining 3

메시지가 작동 브로커 Pod로 성공적으로 마이그레이션되면 드레인터 Pod가 종료되고 축소 컨트롤러에서 고립된 PV의 PVC를 제거합니다. PV가 "Released" 상태로 돌아갑니다.

참고

PV의 회수 정책이 유지 되도록 설정된 경우 PV를 삭제하고 다시 생성할 때까지 다른 Pod에서 PV를 사용할 수 없습니다. 예를 들어, 축소 후 클러스터를 확장하면 PV를 삭제하고 다시 생성할 때까지 Pod에서 PV를 사용할 수 없습니다.

추가 리소스

4.13.2. 메시지 마이그레이션 활성화

ActiveMQArtemis 사용자 정의 리소스(CR)에서 메시지 마이그레이션을 활성화할 수 있습니다.

사전 요구 사항

참고
  • 스케일다운 컨트롤러는 단일 OpenShift 프로젝트 내에서만 작동합니다. 컨트롤러는 별도의 프로젝트에서 브로커 간에 메시지를 마이그레이션할 수 없습니다.
  • 브로커 배포를 0(zero)으로 축소하면 메시징 데이터를 마이그레이션할 수 있는 실행 중인 브로커 Pod가 없기 때문에 메시지 마이그레이션이 발생하지 않습니다. 그러나 배포를 0으로 축소한 다음 원래 배포보다 작은 크기로 백업하면 종료된 브로커에 대해 드레인더 Pod가 시작됩니다.

절차

  1. 브로커 배포의 CR 인스턴스를 편집합니다.

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

      1. 브로커 배포를 위해 프로젝트에 CR을 배포할 수 있는 권한이 있는 사용자로 OpenShift Container Platform에 로그인합니다.
      2. 배포의 CR을 편집합니다.

         oc edit ActiveMQArtemis <CR instance name> -n <namespace>
    2. OpenShift Container Platform 웹 콘솔 사용:

      1. 브로커 배포를 위해 프로젝트에 CR을 배포할 수 있는 권한이 있는 사용자로 OpenShift Container Platform에 로그인합니다.
      2. 왼쪽 창에서 Administration Custom Resource Definitions 를 클릭합니다.
      3. ActiveMQArtemis CRD를 클릭합니다.
      4. Instances 탭을 클릭합니다.
      5. 브로커 배포의 인스턴스를 클릭합니다.
      6. YAML 탭을 클릭합니다.

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

  2. CR의 deploymentPlan 섹션에서 messageMigration 속성을 추가하고 true 로 설정합니다. 아직 구성되지 않은 경우 persistenceEnabled 특성을 추가하고 true 로 설정합니다. 예를 들면 다음과 같습니다.

    spec:
      deploymentPlan:
        messageMigration: true
        persistenceEnabled: true
      ...

    이러한 설정은 나중에 클러스터형 브로커 배포 크기를 축소할 때 Operator는 축소 컨트롤러를 자동으로 시작하고 계속 실행 중인 브로커 Pod로 메시지를 마이그레이션합니다.

  3. CR을 저장합니다.
  4. (선택 사항) 클러스터를 축소하고 메시지 마이그레이션 프로세스를 보려면 다음 단계를 완료합니다.

    1. 기존 브로커 배포에서 실행 중인 Pod를 확인합니다.

      $ oc get pods

      다음과 같은 출력이 표시됩니다.

      activemq-artemis-operator-8566d9bf58-9g25l   1/1   Running   0   3m38s
      ex-aao-ss-0                                  1/1   Running   0   112s
      ex-aao-ss-1                                  1/1   Running   0   8s

      앞의 출력에서는 3개의 Pod가 실행 중임을 보여줍니다. 하나는 브로커 Operator 자체와 배포의 각 브로커에 대해 별도의 Pod입니다.

    2. 각 포드에 로그인하여 일부 메시지를 각 브로커에 보냅니다.

      1. 해당 Pod ex-aao-ss-0 에 클러스터 IP 주소가 172.17.0.6 이고 다음 명령을 실행합니다.

        $ /opt/amq/bin/artemis producer --url tcp://172.17.0.6:61616 --user admin --password admin
    3. 해당 Pod ex-aao-ss-1 에 클러스터 IP 주소가 172.17.0.7 이고 다음 명령을 실행합니다.

      $ /opt/amq/bin/artemis producer --url tcp://172.17.0.7:61616 --user admin --password admin

      이전 명령은 각 브로커에 TEST 라는 큐를 생성하고 각 큐에 1000개의 메시지를 추가합니다.

    4. 클러스터를 두 브로커에서 1개로 축소합니다.

      1. 주요 브로커 CR, broker_activemqartemis_cr.yaml 을 엽니다.
      2. CR에서 deploymentPlan.size1 로 설정합니다.
      3. 명령줄에서 변경 사항을 적용합니다.

        $ oc apply -f deploy/crs/broker_activemqartemis_cr.yaml

        ex-aao-s-1 Pod가 종료되기 시작하는 것을 확인할 수 있습니다. scaledown 컨트롤러는 동일한 이름의 새 드레인러 Pod를 시작합니다. 이 드레이너 Pod는 브로커 포드 ex-aao-ss-1 의 모든 메시지를 클러스터의 다른 브로커 Pod인 ex-aao-s-0 으로 마이그레이션한 후에도 종료됩니다.

    5. drainer Pod가 종료되면 브로커 Pod ex-aao-ss-0TEST 대기열에서 메시지 수를 확인합니다. 대기열의 메시지 수가 2000개이며, 드레이너 Pod가 종료된 브로커 Pod에서 1000개의 메시지를 마이그레이션했음을 나타냅니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.