6.4. CLI를 사용하여 Operator 수동 업그레이드
이 섹션의 절차에서는 OpenShift CLI(명령줄 인터페이스)를 사용하여 Operator의 다른 버전을 AMQ Broker 7.12에 사용할 수 있는 최신 버전으로 업그레이드하는 방법을 보여줍니다.
6.4.1. 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
- CLI를 사용하여 Operator를 처음 설치한 경우에만 Operator를 업그레이드합니다. 원래 OperatorHub를 사용하여 Operator를 설치된 Operator에 표시됨) OperatorHub를 사용하여 Operator를 업그레이드합니다. OperatorHub를 사용하여 Operator를 업그레이드하는 방법을 알아보려면 6.3절. “OperatorHub를 사용하여 Operator 수동 업그레이드” 을 참조하십시오.
6.4.2. CLI를 사용하여 Operator 업그레이드 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift CLI(명령줄 인터페이스)를 사용하여 Operator를 AMQ Broker 7.12의 최신 버전으로 업그레이드할 수 있습니다.
프로세스
- 웹 브라우저에서 AMQ Broker 7.12.3 의 소프트웨어 다운로드 페이지로 이동합니다.
-
버전 드롭다운 목록의 값이
7.12.3으로 설정되고 릴리스 탭이 선택되어 있는지 확인합니다. AMQ Broker 7.12.3 Operator 설치 및 예제 파일 옆에 있는 Download 를 클릭합니다.
amq-broker-operator-7.12.3-ocp-install-examples-rhel8.zip압축 아카이브가 자동으로 시작됩니다.다운로드가 완료되면 아카이브를 선택한 설치 디렉터리로 이동합니다. 다음 예제에서는 아카이브를
~/broker/operator라는 디렉터리로 이동합니다.mkdir ~/broker/operator mv amq-broker-operator-7.12.3-ocp-install-examples-rhel8.zip ~/broker/operator
$ mkdir ~/broker/operator $ mv amq-broker-operator-7.12.3-ocp-install-examples-rhel8.zip ~/broker/operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택한 설치 디렉터리에서 아카이브의 내용을 추출합니다. 예를 들면 다음과 같습니다.
cd ~/broker/operator unzip amq-broker-operator-operator-7.12.3-ocp-install-examples-rhel8.zip
$ cd ~/broker/operator $ unzip amq-broker-operator-operator-7.12.3-ocp-install-examples-rhel8.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 이름이amq-broker-controller-manager가 아닌 경우amq-broker-controller-manager의 모든 인스턴스를 이전 Operator 이름으로 교체합니다. 예를 들면 다음과 같습니다.Copy 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 새 서비스 계정 이름,
amq-broker-controller-manager를 Operator에 사용하려면 프로젝트에서 서비스 계정, 역할 및 역할 바인딩을 업데이트합니다.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 참고Operator를 삭제해도 Operator에서 관리하는 브로커 인스턴스는 제거되지 않습니다.
--cascade=orphan옵션을 사용하여 StatefulSet을 삭제하여 브로커 Pod를 분리합니다. 분리된 브로커 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에
deploymentPlan.labels속성에 구성된애플리케이션또는ActiveMQArtemis라는 레이블이 있는지 확인합니다.이러한 라벨은 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 - 필요에 따라 업그레이드된 브로커에서 사용할 수 있는 새로운 기능의 CR에 속성을 추가합니다.