6.3. OperatorHub를 사용하여 Operator 업그레이드

이 섹션에서는 OperatorHub를 사용하여 AMQ Broker에 대한 Operator를 업그레이드하는 방법을 설명합니다.

6.3.1. 사전 요구 사항

  • OperatorHub를 사용하여 Operator를 처음 설치한 경우에만 Operator를 업그레이드해야 합니다(즉, OpenShift Container Platform 웹 콘솔의 프로젝트의 Operators 에 Operator 설치됨 ). 반대로 원래 OpenShift CLI(명령줄 인터페이스)를 사용하여 Operator를 설치하는 경우 CLI를 사용하여 Operator를 업그레이드해야 합니다. CLI를 사용하여 Operator를 업그레이드하는 방법을 알아보려면 6.2절. “CLI를 사용하여 Operator 업그레이드” 를 참조하십시오.
  • OperatorHub를 사용하여 AMQ Broker Operator를 업그레이드하려면 OpenShift 클러스터에 대한 클러스터 관리자 권한이 필요합니다.

6.3.2. 사전 준비 사항

이 섹션에서는 OperatorHub를 사용하여 AMQ Broker Operator의 인스턴스를 업그레이드하기 전에 몇 가지 중요한 고려 사항에 대해 설명합니다.

  • OperatorHub에서 최신 Operator 버전을 설치할 때 Operator Lifecycle Manager가 OpenShift 클러스터의 CRD를 자동으로 업데이트합니다. 기존 CRD를 제거할 필요가 없습니다. 기존 CRD를 제거하면 모든 CR 및 브로커 인스턴스도 제거됩니다.
  • 최신 Operator 버전의 CRD로 클러스터를 업데이트하면 이 업데이트는 클러스터의 모든 프로젝트에 영향을 미칩니다. 이전 버전의 Operator에서 배포한 모든 브로커 Pod는 OpenShift Container Platform 웹 콘솔에서 해당 상태를 업데이트할 수 없습니다. 실행 중인 브로커 Pod의 로그 탭을 클릭하면 'UpdatePodStatus'가 실패했음을 나타내는 메시지가 표시됩니다. 그러나 해당 프로젝트의 브로커 Pod 및 Operator는 예상대로 계속 작동합니다. 영향을 받는 프로젝트의 이 문제를 해결하려면 최신 버전의 Operator를 사용하도록 해당 프로젝트도 업그레이드해야 합니다.
  • 수행할 절차는 업그레이드 중인 Operator 버전에 따라 다릅니다. 현재 버전에 해당하는 업그레이드 절차를 따르십시오.

6.3.3. Operator를 pre-7.10.0에서 7.10.1 이상으로 업그레이드

OperatorHub를 사용하여 Operator의 인스턴스를 pre-7.10.0에서 7.10.1 이상으로 업그레이드할 수 있습니다.

절차

  1. OpenShift Container Platform 웹 콘솔에 클러스터 관리자로 로그인합니다.
  2. 프로젝트에서 기존 AMQ Broker Operator를 설치 제거합니다.
  3. 왼쪽 탐색 메뉴에서 Operators(운영자) InstalledOperators 를 클릭합니다.
  4. 페이지 상단에 있는 프로젝트 드롭다운 메뉴에서 Operator를 설치 제거할 프로젝트를 선택합니다.
  5. 설치하려는 Red Hat Integration - AMQ Broker 인스턴스를 찾습니다.
  6. Operator 인스턴스의 경우 오른쪽에 있는 More Options 아이콘(세 개의 수직 점)을 클릭합니다. Operator 설치 제거를 선택합니다.
  7. 확인 대화 상자에서 제거를 클릭합니다.
  8. OperatorHub를 사용하여 AMQ Broker 7.10에 대한 최신 버전의 Operator를 설치합니다. 자세한 내용은 3.3.2절. “OperatorHub에서 Operator 배포”의 내용을 참조하십시오.

    배포 CR에서 자동 업데이트가 활성화된 경우 Operator의 조정 프로세스는 새 Operator가 시작될 때 각 브로커 Pod를 업그레이드합니다. 자동 업데이트가 활성화되지 않은 경우 CR에서 다음 속성을 설정하여 활성화할 수 있습니다.

    spec:
        ...
        upgrades:
            enabled: true
            minor: true

    자동 업데이트 활성화에 대한 자세한 내용은 6.4절. “AMQ Broker 버전을 지정하여 브로커 컨테이너 이미지 업그레이드” 에서 참조하십시오.

    참고

    조정 프로세스가 시작되지 않으면 배포를 스케일링하여 프로세스를 시작할 수 있습니다. 자세한 내용은 3.4.1절. “기본 브로커 인스턴스 배포”의 내용을 참조하십시오.

6.3.4. 7.10.0에서 7.10.x로 Operator 업그레이드

AMQ Broker Operator 7.10.0에서 업그레이드하려면 다음 절차를 사용하십시오.

절차

  1. OpenShift Container Platform 웹 콘솔에 클러스터 관리자로 로그인합니다.
  2. 프로젝트에서 기존 AMQ Broker Operator를 설치 제거합니다.

    1. 왼쪽 탐색 메뉴에서 Operators(운영자) InstalledOperators 를 클릭합니다.
    2. 페이지 상단에 있는 프로젝트 드롭다운 메뉴에서 Operator를 설치 제거할 프로젝트를 선택합니다.
    3. 설치하려는 Red Hat Integration - AMQ Broker 인스턴스를 찾습니다.
    4. Operator 인스턴스의 경우 오른쪽에 있는 More Options 아이콘(세 개의 수직 점)을 클릭합니다. Operator 설치 제거를 선택합니다.
    5. 확인 대화 상자에서 제거를 클릭합니다.
  3. 7.10.0 Operator를 업그레이드할 때 새 Operator는 StatefulSet을 삭제하여 사용자 정의 및 Operator 미터링 라벨을 삭제합니다. 이 라벨은 7.10.0에서 Operator의 StatefulSet 선택기에 잘못 추가되었습니다. Operator가 StatefulSet을 삭제하면 기존 브로커 Pod도 삭제하여 일시적인 브로커 중단이 발생합니다. 중단을 방지하려면 다음 단계를 완료하여 StatefulSet을 삭제하고 브로커 Pod를 분리하여 계속 실행합니다.

    1. 기존 Operator 배포가 포함된 프로젝트의 관리자로 OpenShift Container Platform CLI에 로그인합니다.

      $ oc login -u <user>
    2. Operator 버전을 업그레이드하려는 OpenShift 프로젝트로 전환합니다.

      $ oc project <project-name>
    3. 브로커 Pod를 분리하려면 --cascade=orphan 옵션을 사용하여 StatefulSet을 삭제합니다. 고립된 브로커 Pod는 StatefulSet이 삭제된 후에도 계속 실행됩니다.

      $ oc delete statefulset <statefulset-name> --cascade=orphan
  4. 기본 브로커 CR에 deploymentPlan.labels 속성에 구성된 application 또는 ActiveMQArtemis 라는 레이블이 있는지 확인합니다.

    7.10.0에서는 CR에서 이러한 사용자 정의 라벨을 설정할 수 있었습니다. 이러한 라벨은 Operator가 Pod에 라벨을 할당하도록 예약되며 7.10.0 후에는 사용자 정의 라벨로 추가할 수 없습니다. 이러한 사용자 정의 라벨이 7.10.0의 기본 브로커 CR에 구성된 경우 Pod의 Operator 할당 라벨을 사용자 정의 라벨로 덮어씁니다. CR에 이러한 라벨 중 하나가 있는 경우 Pod에서 올바른 라벨을 복원하고 CR에서 라벨을 제거하려면 다음 단계를 완료합니다.

    1. OpenShift CLI(명령줄 인터페이스)에서 다음 명령을 실행하여 올바른 Pod 레이블을 복원합니다. 다음 예에서 'ex-aao'는 배포된 StatefulSet의 이름입니다.

      $ for pod in $(oc get pods | grep -o '^ex-aao[^ ]*') do; oc label --overwrite pods $pod ActiveMQArtemis=ex-aao application=ex-aao-app; done
    2. CR의 deploymentPlan.labels 속성에서 애플리케이션ActiveMQArtemis 레이블을 삭제합니다.

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

        1. 브로커 배포의 프로젝트에 CR을 배포할 수 있는 권한이 있는 사용자로 OpenShift에 로그인합니다.

          oc login -u <user> -p <password> --server=<host:port>
        2. 다운로드 및 추출한 Operator 설치 아카이브의 deploy/crs 디렉터리에 포함된 broker_activemqartemis_cr.yaml 이라는 샘플 CR 파일을 엽니다.
        3. CR의 deploymentPlan.labels 요소에서 application 또는 ActiveMQArtemis 라는 사용자 지정 레이블을 삭제합니다.
        4. CR 파일을 저장합니다.
        5. CR 인스턴스를 배포합니다.

          1. 브로커 배포를 위해 프로젝트로 전환합니다.

            $ oc project <project_name>
          2. CR을 적용합니다.

            $ oc apply -f <path/to/broker_custom_resource_instance>.yaml
      2. OpenShift Container Platform 웹 콘솔 사용:

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

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

        7. CR의 deploymentPlan.labels 요소에서 application 또는 ActiveMQArtemis 라는 사용자 지정 레이블을 삭제합니다.
        8. 저장을 클릭합니다.
  5. OperatorHub를 사용하여 AMQ Broker 7.10에 대한 최신 버전의 Operator를 설치합니다. 자세한 내용은 3.3.2절. “OperatorHub에서 Operator 배포”의 내용을 참조하십시오.

    새 Operator는 이전 브로커 배포를 인식하고 관리할 수 있습니다. 배포 CR에서 자동 업데이트가 활성화된 경우 Operator의 조정 프로세스는 새 Operator가 시작될 때 각 브로커 Pod를 업그레이드합니다. 자동 업데이트가 활성화되지 않은 경우 CR에서 다음 속성을 설정하여 활성화할 수 있습니다.

    spec:
        ...
        upgrades:
            enabled: true
            minor: true

    자동 업데이트 활성화에 대한 자세한 내용은 6.4절. “AMQ Broker 버전을 지정하여 브로커 컨테이너 이미지 업그레이드” 에서 참조하십시오.

    참고

    조정 프로세스가 시작되지 않으면 배포를 스케일링하여 프로세스를 시작할 수 있습니다. 자세한 내용은 3.4.1절. “기본 브로커 인스턴스 배포”의 내용을 참조하십시오.

  6. 필요에 따라 업그레이드된 브로커에서 사용할 수 있는 새 기능의 CR에 속성을 추가합니다.

6.3.5. 7.10.1에서 7.10.x로 Operator 업그레이드

AMQ Broker Operator 7.10.1에서 업그레이드하려면 다음 절차를 사용하십시오.

절차

  1. OpenShift Container Platform 웹 콘솔에 클러스터 관리자로 로그인합니다.
  2. 기본 브로커 CR에 deploymentPlan.labels 속성에 구성된 application 또는 ActiveMQArtemis 라는 레이블이 있는지 확인합니다.

    이러한 라벨은 Operator가 Pod에 라벨을 할당하도록 예약되어 있으며 7.10.1 이후에는 사용할 수 없습니다. 이러한 사용자 정의 라벨이 기본 브로커 CR에 구성된 경우 Pod에 Operator 할당 라벨을 사용자 정의 라벨로 덮어씁니다.

  3. 이러한 사용자 정의 라벨이 기본 브로커 CR에 구성되지 않은 경우 OperatorHub를 사용하여 AMQ Broker 7.10용 최신 버전의 Operator를 설치합니다. 자세한 내용은 3.3.2절. “OperatorHub에서 Operator 배포”의 내용을 참조하십시오.
  4. 이러한 사용자 정의 라벨 중 하나가 기본 브로커 CR에 구성된 경우 다음 단계를 완료하여 기존 Operator를 제거하고, 올바른 Pod 라벨을 복원하며, 새 Operator를 설치하기 전에 CR에서 라벨을 제거합니다.

    참고

    Operator를 설치 제거하여 Operator에서 StatefulSet을 삭제하지 않고 사용자 정의 레이블을 제거할 수 있습니다. 이로 인해 기존 브로커 Pod도 삭제되고 일시적으로 브로커 중단이 발생합니다.

    1. 프로젝트에서 기존 AMQ Broker Operator를 설치 제거합니다.

      1. 왼쪽 탐색 메뉴에서 Operators(운영자) InstalledOperators 를 클릭합니다.
      2. 페이지 상단에 있는 프로젝트 드롭다운 메뉴에서 Operator를 설치 제거할 프로젝트를 선택합니다.
      3. 설치하려는 Red Hat Integration - AMQ Broker 인스턴스를 찾습니다.
      4. Operator 인스턴스의 경우 오른쪽에 있는 More Options 아이콘(세 개의 수직 점)을 클릭합니다. Operator 설치 제거를 선택합니다.
      5. 확인 대화 상자에서 제거를 클릭합니다.
    2. OpenShift CLI(명령줄 인터페이스)에서 다음 명령을 실행하여 올바른 Pod 레이블을 복원합니다. 다음 예에서 'ex-aao'는 배포된 StatefulSet의 이름입니다.

      $ for pod in $(oc get pods | grep -o '^ex-aao[^ ]*') do; oc label --overwrite pods $pod ActiveMQArtemis=ex-aao application=ex-aao-app; done
    3. CR의 deploymentPlan.labels 속성에서 애플리케이션ActiveMQArtemis 레이블을 삭제합니다.

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

        1. 브로커 배포의 프로젝트에 CR을 배포할 수 있는 권한이 있는 사용자로 OpenShift에 로그인합니다.

          oc login -u <user> -p <password> --server=<host:port>
        2. 다운로드 및 추출한 Operator 설치 아카이브의 deploy/crs 디렉터리에 포함된 broker_activemqartemis_cr.yaml 이라는 샘플 CR 파일을 엽니다.
        3. CR의 deploymentPlan.labels 속성에서 application 또는 ActiveMQArtemis 라는 사용자 지정 레이블을 삭제합니다.
        4. CR 파일을 저장합니다.
        5. CR 인스턴스를 배포합니다.

          1. 브로커 배포를 위해 프로젝트로 전환합니다.

            $ oc project <project_name>
          2. CR을 적용합니다.

            $ oc apply -f <path/to/broker_custom_resource_instance>.yaml
      2. OpenShift Container Platform 웹 콘솔 사용:

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

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

        7. CR의 deploymentPlan.labels 속성에서 application 또는 ActiveMQArtemis 라는 사용자 지정 레이블을 삭제합니다.
        8. 저장을 클릭합니다.
  5. OperatorHub를 사용하여 AMQ Broker 7.10에 대한 최신 버전의 Operator를 설치합니다. 자세한 내용은 3.3.2절. “OperatorHub에서 Operator 배포”의 내용을 참조하십시오.

    새 Operator는 이전 브로커 배포를 인식하고 관리할 수 있습니다. 배포 CR에서 자동 업데이트가 활성화된 경우 Operator의 조정 프로세스는 새 Operator가 시작될 때 각 브로커 Pod를 업그레이드합니다. 자동 업데이트가 활성화되지 않은 경우 CR에서 다음 속성을 설정하여 활성화할 수 있습니다.

    spec:
        ...
        upgrades:
            enabled: true
            minor: true

    자동 업데이트 활성화에 대한 자세한 내용은 6.4절. “AMQ Broker 버전을 지정하여 브로커 컨테이너 이미지 업그레이드” 에서 참조하십시오.

    참고

    조정 프로세스가 시작되지 않으면 배포를 스케일링하여 프로세스를 시작할 수 있습니다. 자세한 내용은 3.4.1절. “기본 브로커 인스턴스 배포”의 내용을 참조하십시오.

  6. 필요에 따라 업그레이드된 브로커에서 사용할 수 있는 새 기능의 CR에 속성을 추가합니다.