4.4. 브로커 스토리지 요구 사항 구성
Operator 기반 브로커 배포에서 영구 스토리지를 사용하려면 배포를 생성하는 데 사용되는 CR(사용자 정의 리소스) 인스턴스에서 persistenceEnabled
를 true
로 설정합니다. OpenShift 클러스터에 컨테이너 네이티브 스토리지가 없는 경우 PV(영구 볼륨)를 수동으로 프로비저닝하고 PVC(영구 볼륨 클레임)를 사용하여 Operator에서 이러한 볼륨을 클레임할 수 있는지 확인해야 합니다. 예를 들어 영구 스토리지를 사용하여 두 개의 브로커로 구성된 클러스터를 생성하려면 두 개의 PV를 사용할 수 있어야 합니다.
OpenShift Container Platform에서 PV를 수동으로 프로비저닝하는 경우 각 PV의 회수 정책을 Retain
으로 설정해야 합니다. PV의 회수 정책이 Retain
으로 설정되지 않고 Operator에서 PV를 요청하는 데 사용한 PVC도 삭제됩니다. PV를 삭제하면 볼륨의 데이터가 손실됩니다. 자세한 내용은 회수 정책 설정에 대한 자세한 내용은 OpenShift Container Platform 설명서의 영구 스토리지 이해 를 참조하십시오.
기본적으로 PVC는 클러스터에 대해 구성된 기본 스토리지 클래스에서 각 브로커의 2GiB 스토리지를 가져옵니다. PVC에서 요청된 기본 크기 및 스토리지 클래스를 재정의할 수 있지만 CR을 처음 배포하기 전에 CR에서 새 값을 구성하는 경우에만 해당합니다.
4.4.1. 브로커 스토리지 크기 및 스토리지 클래스 구성
다음 절차에서는 브로커 배포에 사용할 CR(사용자 정의 리소스) 인스턴스를 구성하여 영구 메시지 스토리지를 위해 각 브로커에 필요한 PVC(영구 볼륨 클레임)의 크기 및 스토리지 클래스를 지정하는 방법을 설명합니다.
CR을 처음 배포하기 전에 브로커 스토리지 크기 및 스토리지 클래스에 대한 구성을 브로커 배포의 기본 CR에 추가해야 합니다. 이미 실행 중인 브로커 배포에 구성을 추가할 수 없습니다.
사전 요구 사항
- CR 인스턴스를 사용하여 기본 브로커 배포를 생성하는 방법에 대해 잘 알고 있어야 합니다. 3.4.1절. “기본 브로커 인스턴스 배포”을 참조하십시오.
이미 PV(영구 볼륨)를 프로비저닝하고 Operator에서 클레임할 수 있도록 해야 합니다. 예를 들어 영구 스토리지를 사용하여 두 브로커의 클러스터를 생성하려면 두 PV를 사용할 수 있어야 합니다.
영구 스토리지 프로비저닝에 대한 자세한 내용은 OpenShift Container Platform 설명서의 영구 스토리지 이해 를 참조하십시오.
절차
브로커 배포용 CR(사용자 정의 리소스) 인스턴스 구성을 시작합니다.
OpenShift 명령줄 인터페이스 사용:
배포를 생성하는 프로젝트에 CR을 배포할 수 있는 권한이 있는 사용자로 OpenShift에 로그인합니다.
oc login -u <user> -p <password> --server=<host:port>
-
다운로드 및 추출한 Operator 설치 아카이브의
deploy/crs
디렉터리에 포함된broker_activemqartemis_cr.yaml
이라는 샘플 CR 파일을 엽니다.
OpenShift Container Platform 웹 콘솔 사용:
- 배포를 생성하는 프로젝트에 CR을 배포할 수 있는 권한이 있는 사용자로 콘솔에 로그인합니다.
-
기본 브로커 CRD를 기반으로 새 CR 인스턴스를 시작합니다. 왼쪽 창에서
를 클릭합니다. - ActiveMQArtemis CRD를 클릭합니다.
- Instances 탭을 클릭합니다.
Create ActiveMQArtemis 를 클릭합니다.
콘솔에서 YAML 편집기가 열리고 CR 인스턴스를 구성할 수 있습니다.
기본 브로커 배포의 경우 구성은 다음과 같이 표시될 수 있습니다.
apiVersion: broker.amq.io/v1beta1 kind: ActiveMQArtemis metadata: name: ex-aao application: ex-aao-app spec: deploymentPlan: size: 1 image: placeholder requireLogin: false persistenceEnabled: true journalType: nio messageMigration: true
broker_activemqartemis_cr.yaml
샘플 CR 파일에서image
속성이자리 표시자
의 기본값으로 설정되어 있는지 확인합니다. 이 값은 기본적으로image
속성이 배포에 사용할 브로커 컨테이너 이미지를 지정하지 않음을 나타냅니다. Operator에서 사용할 적절한 브로커 컨테이너 이미지를 결정하는 방법을 알아보려면 2.4절. “Operator에서 컨테이너 이미지를 선택하는 방법” 를 참조하십시오.브로커 스토리지 크기를 지정하려면 CR의
deploymentPlan
섹션에서storage
섹션을 추가합니다.size
속성을 추가하고 값을 지정합니다. 예를 들면 다음과 같습니다.spec: deploymentPlan: size: 1 image: placeholder requireLogin: false persistenceEnabled: true journalType: nio messageMigration: true storage: size: 4Gi
storage.size
-
각 브로커 Pod에 영구 스토리지에 필요한 PVC(영구 볼륨 클레임)의 크기(바이트)입니다. 이 속성은
persistenceEnabled
가true
로 설정된 경우에만 적용됩니다. 지정한 값은 바이트 표기법(예: K, M, G) 또는 바이너리 동등한 단위(Ki, Mi, Gi)를 사용하는 단위를 포함해야 합니다.
각 브로커 Pod에서 영구 스토리지에 필요한 스토리지 클래스를 지정하려면
스토리지
섹션에서storageClassName
속성을 추가하고 값을 지정합니다. 예를 들면 다음과 같습니다.spec: deploymentPlan: size: 1 image: placeholder requireLogin: false persistenceEnabled: true journalType: nio messageMigration: true storage: size: 4Gi storageClassName: gp3
storage.storageClassName
PVC(영구 볼륨 클레임)에서 요청할 스토리지 클래스의 이름입니다. 스토리지 클래스는 관리자가 사용 가능한 스토리지를 설명하고 분류하는 방법을 제공합니다. 예를 들어, 다른 스토리지 클래스는 특정 서비스 품질 수준, 백업 정책 등에 매핑될 수 있습니다.
스토리지 클래스를 지정하지 않으면 클러스터에 대해 구성된 기본 스토리지 클래스가 있는 영구 볼륨이 PVC에서 요청합니다.
참고스토리지 클래스를 지정하면 볼륨의 스토리지 클래스가 지정된 스토리지 클래스와 일치하는 경우에만 PVC에서 영구 볼륨을 클레임합니다.
CR 인스턴스를 배포합니다.
OpenShift 명령줄 인터페이스 사용:
- CR 파일을 저장합니다.
브로커 배포를 생성하는 프로젝트로 전환합니다.
$ oc project <project_name>
CR 인스턴스를 생성합니다.
$ oc create -f <path/to/custom_resource_instance>.yaml
OpenShift 웹 콘솔 사용:
- CR 구성을 마쳤으면 생성을 클릭합니다.