6.4. AMQ Broker 버전을 지정하여 브로커 컨테이너 이미지 업그레이드
다음 절차에서는 AMQ Broker 버전을 지정하여 Operator 기반 브로커 배포의 브로커 컨테이너 이미지를 업그레이드하는 방법을 보여줍니다. 예를 들어 Operator를 AMQ Broker 7.10.0으로 업그레이드하는 경우 CR의 spec.upgrades.enabled
속성이 이미 true
로 설정되고 spec.version
속성은 7.9.0
을 지정합니다. 브로커 컨테이너 이미지를 업그레이드 하려면 새 AMQ Broker 버전(예: 7.10.0
)을 수동으로 지정해야 합니다. 새 버전의 AMQ Broker를 지정하면 Operator에서 이 버전에 해당하는 브로커 컨테이너 이미지를 자동으로 선택합니다.
사전 요구 사항
- 2.4절. “Operator에서 컨테이너 이미지를 선택하는 방법” 에 설명된 대로 CR을 배포하고 브로커 컨테이너 이미지를 명시적으로 지정하지 않으면 Operator에서 사용할 적절한 컨테이너 이미지를 자동으로 선택합니다. 이 섹션에 설명된 업그레이드 프로세스를 사용하려면 이 기본 동작을 사용해야 합니다. CR에 브로커 컨테이너 이미지를 직접 지정하여 기본 동작을 재정의하는 경우 Operator는 아래에 설명된 대로 AMQ Broker 버전에 해당하도록 브로커 컨테이너 이미지를 자동으로 업그레이드할 수 없습니다.
절차
브로커 배포의 주요 브로커 CR 인스턴스를 편집합니다.
OpenShift 명령줄 인터페이스 사용:
브로커 배포를 위해 프로젝트에 CR을 편집하고 배포할 수 있는 권한이 있는 사용자로 OpenShift에 로그인합니다.
$ oc login -u <user> -p <password> --server=<host:port>
-
텍스트 편집기에서 브로커 배포에 사용한 CR 파일을 엽니다. 예를 들어 이전에 다운로드 및 추출한 Operator 설치 아카이브의
deploy/crs
디렉터리에 포함된broker_activemqartemis_cr.yaml
파일이 될 수 있습니다.
OpenShift Container Platform 웹 콘솔 사용:
- 브로커 배포를 위해 프로젝트에 CR을 편집하고 배포할 수 있는 권한이 있는 사용자로 콘솔에 로그인합니다.
-
왼쪽 창에서
를 클릭합니다. - ActiveMQArtemis CRD를 클릭합니다.
- Instances 탭을 클릭합니다.
- 프로젝트 네임스페이스에 해당하는 CR 인스턴스를 찾습니다.
CR 인스턴스의 경우 오른쪽에 있는 More Options 아이콘(여러 개의 수직점)을 클릭합니다. Edit ActiveMQArtemis 를 선택합니다.
콘솔에서 YAML 편집기가 열리고 CR 인스턴스를 편집할 수 있습니다.
브로커 컨테이너 이미지를 업그레이드할 AMQ Broker 버전을 지정하려면 CR의
spec.version
속성 값을 설정합니다. 예를 들면 다음과 같습니다.spec: version: 7.10.0 ...
CR의
spec
섹션에서upgrades
섹션을 찾습니다. 이 섹션이 CR에 아직 포함되지 않은 경우 추가합니다.spec: version: 7.10.0 ... upgrades:
upgrades
섹션에enabled
및minor
속성이 포함되어 있는지 확인합니다.spec: version: 7.10.0 ... upgrades: enabled: minor:
AMQ Broker의 지정된 버전을 기반으로 브로커 컨테이너 이미지를 업그레이드하려면
enabled
속성 값을true
로 설정합니다.spec: version: 7.10.0 ... upgrades: enabled: true minor:
브로커의 업그레이드 동작을 정의하려면
마이너
속성 값을 설정합니다.마이너 AMQ Broker 버전 간 업그레이드를 허용하려면
minor
값을true
로 설정합니다.spec: version: 7.10.0 ... upgrades: enabled: true minor: true
예를 들어 현재 브로커 컨테이너 이미지가
7.9.0
에 해당하고spec.version
에 지정된7.10.0
버전에 해당하는 새 이미지를 사용할 수 있다고 가정합니다. 이 경우 Operator는7.9.0
과7.10.0
마이너 버전 간에 사용 가능한 업그레이드가 있는지 확인합니다. 마이너 버전 간 업그레이드를 허용하는 이전 설정을 기반으로 Operator는 브로커 컨테이너 이미지를 업그레이드합니다.대조적으로 현재 브로커 컨테이너 이미지가
7.10.0
에 해당하고spec.version
에 대해7.10.1
의 새 값을 지정한다고 가정합니다.7.10.1
에 해당하는 이미지가 있는 경우 Operator는7.10.0
및7.10.1
마이크로 버전 간에 사용 가능한 업그레이드가 있는지 확인합니다. 마이너 버전 간에만 업그레이드할 수 있는 위 설정을 기반으로 Operator 는 브로커 컨테이너 이미지를 업그레이드하지 않습니다.마이크로 AMQ Broker 버전 간 업그레이드를 허용하려면
minor
값을false
로 설정합니다.spec: version: 7.10.0 ... upgrades: enabled: true minor: false
예를 들어 현재 브로커 컨테이너 이미지가
7.9.0
에 해당하고spec.version
에 지정된7.10.0
버전에 해당하는 새 이미지를 사용할 수 있다고 가정합니다. 이 경우 Operator는7.9.0
과7.10.0
마이너 버전 간에 사용 가능한 업그레이드가 있는지 확인합니다. 이전 설정을 기반으로 마이너 버전(즉 마이크로 버전 간만) 간 업그레이드를 허용하지 않는 이전 설정에 따라 Operator 는 브로커 컨테이너 이미지를 업그레이드하지 않습니다.대조적으로 현재 브로커 컨테이너 이미지가
7.10.0
에 해당하고spec.version
에 대해7.10.1
의 새 값을 지정한다고 가정합니다.7.10.1
에 해당하는 이미지가 있는 경우 Operator는7.10.0
및7.10.1
마이크로 버전 간에 사용 가능한 업그레이드가 있는지 확인합니다. 마이크로 버전 간에 업그레이드할 수 있는 위 설정을 기반으로 Operator는 브로커 컨테이너 이미지를 업그레이드합니다.
CR에 변경 사항을 적용합니다.
OpenShift 명령줄 인터페이스 사용:
- CR 파일을 저장합니다.
브로커 배포를 위해 프로젝트로 전환합니다.
$ oc project <project_name>
CR을 적용합니다.
$ oc apply -f <path/to/broker_custom_resource_instance>.yaml
OpenShift 웹 콘솔 사용:
- CR 편집을 마쳤으면 저장 을 클릭합니다.
CR 변경을 적용하면 Operator에서 먼저
spec.version
에 지정된 AMQ Broker 버전으로 업그레이드할 수 있는지 확인합니다. 업그레이드할 잘못된 버전의 AMQ Broker를 지정한 경우 (예: 아직 사용할 수 없는 버전) Operator는 경고 메시지를 기록하여 추가 작업을 수행하지 않습니다.그러나 지정된 버전으로 업그레이드할 수 있고
upgrades.enabled
및upgrades.minor
에 지정된 값을 사용할 수 있는 경우 Operator 는 배포의 각 브로커를 업그레이드하여 새 AMQ Broker 버전에 해당하는 브로커 컨테이너 이미지를 사용합니다.Operator에서 사용하는 브로커 컨테이너 이미지는 Operator 배포의
operator.yaml
구성 파일의 환경 변수에 정의됩니다. 환경 변수 이름에는 AMQ Broker 버전의 식별자가 포함됩니다. 예를 들어 환경 변수RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_7100
은 AMQ Broker 7.10.7에 해당합니다.Operator가 CR 변경을 적용하면 각 Pod가 지정된 이미지 버전을 사용하도록 배포의 각 브로커 Pod를 다시 시작합니다. 배포에 여러 브로커가 있는 경우 한 번에 하나의 브로커 Pod만 종료하고 다시 시작합니다.
추가 리소스
- Operator에서 환경 변수를 사용하여 브로커 컨테이너 이미지를 선택하는 방법에 대한 자세한 내용은 2.4절. “Operator에서 컨테이너 이미지를 선택하는 방법” 을 참조하십시오.