2.5. Operator 배포 노트
이 섹션에서는 Operator 기반 배포를 계획할 때 몇 가지 중요한 고려 사항에 대해 설명합니다.
- AMQ Broker Operator를 동반하는 CRD(Custom Resource Definitions)를 배포하려면 OpenShift 클러스터에 대한 클러스터 관리자 권한이 필요합니다. Operator가 배포되면 관리자가 아닌 사용자는 해당 CR(사용자 정의 리소스)을 통해 브로커 인스턴스를 생성할 수 있습니다. 일반 사용자가 CR을 배포할 수 있도록 하려면 먼저 클러스터 관리자가 CRD에 역할 및 권한을 할당해야 합니다. 자세한 내용은 OpenShift Container Platform 설명서의 사용자 정의 리소스 정의에 대한 클러스터 역할 생성 을 참조하십시오.
- 최신 Operator 버전의 CRD로 클러스터를 업데이트하면 이 업데이트는 클러스터의 모든 프로젝트에 영향을 미칩니다. 이전 버전의 Operator에서 배포한 모든 브로커 Pod는 상태를 업데이트할 수 없게 될 수 있습니다. OpenShift Container Platform 웹 콘솔에서 실행 중인 브로커 Pod의 로그 탭을 클릭하면 'UpdatePodStatus'가 실패했음을 나타내는 메시지가 표시됩니다. 그러나 해당 프로젝트의 브로커 Pod 및 Operator는 예상대로 계속 작동합니다. 영향을 받는 프로젝트의 이 문제를 해결하려면 최신 버전의 Operator를 사용하도록 해당 프로젝트도 업그레이드해야 합니다.
여러 CR(사용자 정의 리소스) 인스턴스를 배포하여 지정된 OpenShift 프로젝트에서 둘 이상의 브로커 배포를 생성할 수 있지만 일반적으로 프로젝트에 단일 브로커 배포를 생성한 다음 주소에 대해 여러 CR 인스턴스를 배포합니다.
별도의 프로젝트에서 브로커 배포를 생성하는 것이 좋습니다.
영구 스토리지를 사용하여 브로커를 배포하고 OpenShift 클러스터에 컨테이너 네이티브 스토리지가 없는 경우 PV(영구 볼륨)를 수동으로 프로비저닝하고 Operator가 요청할 수 있는지 확인해야 합니다. 예를 들어, 영구 스토리지를 사용하여 두 브로커의 클러스터를 생성하려면 CR에서
persistenceEnabled=true
를 설정하여 두 개의 영구 볼륨을 사용할 수 있어야 합니다. 기본적으로 각 브로커 인스턴스에는 2GiB의 스토리지가 필요합니다.CR에서
persistenceEnabled=false
를 지정하면 배포된 브로커는 임시 스토리지를 사용합니다. 임시 스토리지는 브로커 Pod를 다시 시작할 때마다 기존 데이터가 손실됩니다.OpenShift Container Platform에서 영구 스토리지 프로비저닝에 대한 자세한 내용은 다음을 참조하십시오.
CR을 처음 배포하기 전에 아래 나열된 항목에 대한 구성을 기본 브로커 CR 인스턴스에 추가해야 합니다. 이러한 항목에 대한 구성을 이미 실행 중인 브로커 배포에 추가할 수 없습니다.
-
Operator가 StatefulSet에서 동적으로 업데이트할 수 없는 CR에서 매개변수를 업데이트하면 Operator는 StatefulSet을 삭제하고 업데이트된 매개변수 값으로 다시 생성합니다. StatefulSet을 삭제하면 모든 Pod가 삭제되고 다시 생성되어 일시적인 브로커 중단이 발생합니다. StatefulSet에서 Operator에서 동적으로 업데이트할 수 없는 CR 업데이트의 예는
persistenceEnabled=false
를persistenceEnabled=true
로 변경하는 경우입니다.