6.2. CLI를 사용하여 Operator 업그레이드
이 섹션의 절차에서는 OpenShift CLI(명령줄 인터페이스)를 사용하여 다른 버전의 Operator를 AMQ Broker 7.11에서 사용 가능한 최신 버전으로 업그레이드하는 방법을 보여줍니다.
6.2.1. 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
- CLI를 사용하여 Operator를 처음 설치하는 경우에만 Operator를 업그레이드해야 합니다. 원래 OperatorHub를 사용하여 Operator를 설치하는 경우 (즉, OpenShift Container Platform 웹 콘솔의 프로젝트에 )에 표시되는 경우 OperatorHub를 사용하여 Operator를 업그레이드해야 합니다. OperatorHub를 사용하여 Operator를 업그레이드하는 방법을 알아보려면 6.3절. “OperatorHub를 사용하여 Operator 업그레이드” 를 참조하십시오.
6.2.2. CLI를 사용하여 Operator 업그레이드 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift CLI(명령줄 인터페이스)를 사용하여 Operator를 AMQ Broker 7.11의 최신 버전으로 업그레이드할 수 있습니다.
절차
- 웹 브라우저에서 AMQ Broker 7.11.8 의 소프트웨어 다운로드 페이지로 이동합니다.
-
버전 드롭다운 목록의 값이
7.11.8로 설정되고 릴리스 탭이 선택되어 있는지 확인합니다. AMQ Broker 7.11.8 Operator 설치 및 예제 파일 옆에 있는 Download 를 클릭합니다.
amq-broker-operator-7.11.8-ocp-install-examples.zip압축 아카이브의 다운로드가 자동으로 시작됩니다.다운로드가 완료되면 아카이브를 선택한 설치 디렉터리로 이동합니다. 다음 예제에서는 아카이브를
~/broker/operator라는 디렉터리로 이동합니다.mkdir ~/broker/operator mv amq-broker-operator-7.11.8-ocp-install-examples.zip ~/broker/operator
$ mkdir ~/broker/operator $ mv amq-broker-operator-7.11.8-ocp-install-examples.zip ~/broker/operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택한 설치 디렉터리에서 아카이브의 콘텐츠를 추출합니다. 예를 들면 다음과 같습니다.
cd ~/broker/operator unzip amq-broker-operator-operator-7.11.8-ocp-install-examples.zip
$ cd ~/broker/operator $ unzip amq-broker-operator-operator-7.11.8-ocp-install-examples.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 기존 Operator 배포가 포함된 프로젝트의 관리자로 OpenShift Container Platform에 로그인합니다.
oc login -u <user>
$ oc login -u <user>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Operator 버전을 업그레이드하려는 OpenShift 프로젝트로 전환합니다.
oc project <project-name>
$ oc project <project-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다운로드 및 추출한 최신 Operator 아카이브의
배포디렉터리에서operator.yaml파일을 엽니다.참고operator.yaml파일에서 Operator는SHA( Secure Hash Algorithm ) 값으로 표시되는 이미지를 사용합니다. 숫자 기호(#) 기호로 시작하는 주석 행은 SHA 값이 특정 컨테이너 이미지 태그에 해당함을 나타냅니다.-
이전 Operator 배포의
operator.yaml파일을 엽니다. 이전 구성에서 지정한 기본값이 아닌 값이 새operator.yaml구성 파일에 복제되었는지 확인합니다. 새
operator.yaml파일에서 Operator 이름은 기본적으로amq-broker-controller-manager로 지정됩니다. 이전 배포의 Operator 이름이mq-broker-controller-manager가 아닌 경우의 모든 인스턴스를 이전 Operator 이름으로 교체합니다. 예를 들면 다음과 같습니다.amq-broker-controller-managerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 새
operator.yaml파일에서 Operator의 서비스 계정 이름은amq-broker-controller-manager입니다. 이전 버전에서는 Operator의 서비스 계정의 이름이amq-broker-operator로 지정되었습니다.이전 배포에서 서비스 계정 이름을 사용하려면 새
operator.yaml파일의 서비스 계정 이름을 이전 배포에서 사용된 이름으로 바꿉니다. 예를 들면 다음과 같습니다.spec: ... serviceAccountName: amq-broker-operator ...
spec: ... serviceAccountName: amq-broker-operator ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 새 서비스 계정 이름, Operator에
mq-broker-controller-manager를 사용하려면 프로젝트에서 서비스 계정, 역할 및 역할 바인딩을 업데이트합니다.oc apply -f deploy/service_account.yaml
$ oc apply -f deploy/service_account.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc apply -f deploy/role.yaml
$ oc apply -f deploy/role.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc apply -f deploy/role_binding.yaml
$ oc apply -f deploy/role_binding.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Operator에 포함된 CRD를 업데이트합니다.
주요 브로커 CRD를 업데이트합니다.
oc apply -f deploy/crds/broker_activemqartemis_crd.yaml
$ oc apply -f deploy/crds/broker_activemqartemis_crd.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 주소 CRD를 업데이트합니다.
oc apply -f deploy/crds/broker_activemqartemisaddress_crd.yaml
$ oc apply -f deploy/crds/broker_activemqartemisaddress_crd.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow scaledown 컨트롤러 CRD를 업데이트합니다.
oc apply -f deploy/crds/broker_activemqartemisscaledown_crd.yaml
$ oc apply -f deploy/crds/broker_activemqartemisscaledown_crd.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 보안 CRD를 업데이트합니다.
oc apply -f deploy/crds/broker_activemqartemissecurity_crd.yaml
$ oc apply -f deploy/crds/broker_activemqartemissecurity_crd.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
AMQ Broker Operator 7.10.0에서만 업그레이드하는 경우 Operator 및 StatefulSet을 삭제합니다.
기본적으로 새 Operator는 StatefulSet을 삭제하여 사용자 정의 및 Operator 미터링 레이블을 삭제합니다. 이 레이블은 7.10.0의 Operator의 StatefulSet 선택기에 잘못 추가되었습니다. Operator가 StatefulSet을 삭제하면 기존 브로커 Pod도 삭제하여 일시적인 브로커 중단이 발생합니다. 중단을 방지하려면 다음 단계를 완료하여 브로커 Pod를 삭제하지 않고 Operator 및 StatefulSet을 삭제합니다.
Operator를 삭제합니다.
oc delete -f deploy/operator.yaml
$ oc delete -f deploy/operator.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 브로커 Pod를 분리하려면
--cascade=orphan옵션을 사용하여 StatefulSet을 삭제합니다. 고립된 브로커 Pod는 StatefulSet이 삭제된 후에도 계속 실행됩니다.oc delete statefulset <statefulset-name> --cascade=orphan
$ oc delete statefulset <statefulset-name> --cascade=orphanCopy to Clipboard Copied! Toggle word wrap Toggle overflow
AMQ Broker Operator 7.10.0 또는 7.10.1에서 업그레이드하는 경우 기본 브로커 CR에
application또는ActiveMQArtemis라는 레이블이deploymentPlan.labels속성에 구성되어 있는지 확인합니다.이러한 라벨은 Operator가 Pod에 라벨을 할당하도록 예약되며 7.10.1 이후 사용자 정의 라벨로 허용되지 않습니다. 이러한 사용자 정의 라벨이 기본 브로커 CR에 구성된 경우 Pod에 Operator 할당 라벨을 사용자 정의 라벨로 덮어씁니다. 이러한 사용자 정의 라벨 중 하나가 기본 브로커 CR에 구성된 경우 다음 단계를 완료하여 Pod에서 올바른 라벨을 복원하고 CR에서 라벨을 제거합니다.
7.10.0에서 업그레이드하는 경우 이전 단계에서 Operator를 삭제했습니다. 7.10.1에서 업그레이드하는 경우 Operator를 삭제합니다.
oc delete -f deploy/operator.yaml
$ oc delete -f deploy/operator.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 올바른 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
$ for pod in $(oc get pods | grep -o '^ex-aao[^ ]*'); do oc label --overwrite pods $pod ActiveMQArtemis=ex-aao application=ex-aao-app; doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow CR의
deploymentPlan.labels속성에서애플리케이션및ActiveMQArtemis레이블을 삭제합니다.브로커 배포의 프로젝트에 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 파일을 엽니다. -
CR의
deploymentPlan.labels속성에서application또는ActiveMQArtemis라는 사용자 지정 레이블을 삭제합니다. - CR 파일을 저장합니다.
CR 인스턴스를 배포합니다.
브로커 배포를 위해 프로젝트로 전환합니다.
oc project <project_name>
$ oc project <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow CR을 적용합니다.
oc apply -f <path/to/broker_custom_resource_instance>.yaml
$ oc apply -f <path/to/broker_custom_resource_instance>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
이전 Operator를 삭제한 경우 새 Operator를 배포합니다.
oc create -f deploy/operator.yaml
$ oc create -f deploy/operator.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
업데이트된 Operator 구성을 적용합니다.
oc apply -f deploy/operator.yaml
$ oc apply -f deploy/operator.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 새 Operator는 이전 브로커 배포를 인식하고 관리할 수 있습니다. CR의
이미지또는버전필드에 값을 설정하면 Operator의 조정 프로세스가 Operator가 시작될 때 브로커 Pod를 해당 이미지로 업그레이드합니다. 자세한 내용은 6.4절. “브로커 컨테이너 이미지의 자동 업그레이드 제한”의 내용을 참조하십시오. 그러지 않으면 Operator는 각 브로커 Pod를 최신 컨테이너 이미지로 업그레이드합니다.참고조정 프로세스가 시작되지 않으면 배포를 스케일링하여 프로세스를 시작할 수 있습니다. 자세한 내용은 3.4.1절. “기본 브로커 인스턴스 배포”의 내용을 참조하십시오.
- 필요에 따라 업그레이드된 브로커에서 사용할 수 있는 새 기능의 CR에 속성을 추가합니다.