2.4. Operator에서 컨테이너 이미지를 선택하는 방법

브로커 배포용 CR(사용자 정의 리소스) 인스턴스를 생성할 때 CR에 broker 또는 Init Container 이미지 이름을 명시적으로 지정 할 필요가 없습니다. 기본적으로 CR을 배포하고 컨테이너 이미지 값을 명시적으로 지정하지 않으면 Operator에서 사용할 적절한 컨테이너 이미지를 자동으로 선택합니다.

참고

OpenShift 명령줄 인터페이스를 사용하여 Operator를 설치하는 경우 Operator 설치 아카이브에 broker_activemqartemis_cr.yaml 이라는 샘플 CR 파일이 포함됩니다. 샘플 CR에서 spec.deploymentPlan.image 속성이 포함되어 자리 표시자 의 기본값으로 설정됩니다. 이 값은 Operator에서 CR을 배포할 때까지 브로커 컨테이너 이미지를 선택하지 않음을 나타냅니다.

Init Container 이미지를 지정하는 spec.deploymentPlan.initImage 속성은 broker_activemqartemis_cr.yaml 샘플 CR 파일에 포함되어 있지 않습니다. CR에 spec.deploymentPlan.initImage 속성을 명시적으로 포함하지 않고 값을 지정하면 Operator에서 CR을 배포할 때 사용할 적절한 기본 제공 Init Container 이미지를 선택합니다.

Operator가 이러한 이미지를 선택하는 방법은 이 섹션에 설명되어 있습니다.

브로커 및 Init Container 이미지를 선택하려면 먼저 Operator에서 이미지가 일치해야 하는 AMQ Broker 버전을 결정합니다. Operator는 다음과 같이 버전을 결정합니다.

  • 기본 CR의 spec.upgrades.enabled 속성이 이미 true 로 설정되어 있고 spec.version 속성이 7.7.0,7.8.0,7.8.1 또는 7.8.2 를 지정하는 경우 Operator는 지정된 버전을 사용합니다.
  • spec.upgrades.enabledtrue설정되지 않거나 spec.version7.7.0 이전의 AMQ Broker 버전으로 설정된 경우 Operator는 최신 버전의 AMQ Broker(즉, 7.10.6)를 사용합니다.

그러면 Operator에서 컨테이너 플랫폼을 탐지합니다. AMQ Broker Operator는 다음 컨테이너 플랫폼에서 실행할 수 있습니다.

  • OpenShift Container Platform (x86_64)
  • IBM Z의 OpenShift Container Platform (s390x)
  • IBM Power Systems의 OpenShift Container Platform (ppc64le)

AMQ Broker 및 컨테이너 플랫폼의 버전에 따라 Operator는 operator.yaml 구성 파일에서 두 개의 환경 변수 세트를 참조합니다. 이러한 환경 변수 세트는 다음 하위 섹션에 설명된 대로 다양한 AMQ Broker 버전에 대해 브로커 및 Init Container 이미지를 지정합니다.

2.4.1. 브로커 컨테이너 이미지에 대한 환경 변수

브로커 컨테이너 이미지의 operator.yaml 구성 파일에 포함된 환경 변수에는 다음과 같은 이름 지정 규칙이 있습니다.

OpenShift Container Platform
RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_<AMQ_Broker_version_identifier>
IBM Z의 OpenShift Container Platform
RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_<AMQ_Broker_version_identifier>_s390x
IBM Power Systems의 OpenShift Container Platform
RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_<AMQ_Broker_version_identifier>_ppc64le

지원되는 각 컨테이너 플랫폼 및 특정 AMQ Broker 버전에 대한 환경 변수 이름이 표에 표시됩니다.

컨테이너 플랫폼환경 변수 이름

OpenShift Container Platform

  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_782
  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_790
  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_7100

IBM Z의 OpenShift Container Platform

  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_782_s390x
  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_790_s390x
  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_7100_s390x

IBM Power Systems의 OpenShift Container Platform

  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_782_ppc64le
  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_790_ppc64le
  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_7100_ppc64le

각 환경 변수의 값은 Red Hat에서 사용할 수 있는 브로커 컨테이너 이미지를 지정합니다. 예를 들면 다음과 같습니다.

- name: RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_7100
  #value: registry.redhat.io/amq7/amq-broker-rhel8:7.10
  value: registry.redhat.io/amq7/amq-broker-rhel8@sha256:a8b2a9364fd06c8e1c29b8f8f28d3e4844bf7840a62b67137b663c558982d4a3

따라서 AMQ Broker 버전 및 컨테이너 플랫폼에 따라 Operator에서 해당 환경 변수 이름을 결정합니다. Operator는 브로커 컨테이너를 시작할 때 해당 이미지 값을 사용합니다.

참고

operator.yaml 파일에서 Operator는SHA( Secure Hash Algorithm ) 값으로 표시되는 이미지를 사용합니다. 숫자 기호(#) 기호로 시작하는 주석 행은 SHA 값이 특정 컨테이너 이미지 태그에 해당함을 나타냅니다.

2.4.2. Init Container 이미지의 환경 변수

Init Container 이미지의 operator.yaml 구성 파일에 포함된 환경 변수에는 다음과 같은 이름 지정 규칙이 있습니다.

RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_<AMQ_Broker_version_identifier>

특정 AMQ Broker 버전의 환경 변수 이름은 다음과 같습니다.

  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_782
  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_790
  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_7100

각 환경 변수의 값은 Red Hat에서 사용할 수 있는 Init Container 이미지를 지정합니다. 예를 들면 다음과 같습니다.

- name: RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_7100
  #value: registry.redhat.io/amq7/amq-broker-init-rhel8:0.4-21
  value: registry.redhat.io/amq7/amq-broker-init-rhel8@sha256:35b7d96d5065f280a528626abd2c3df84e79ccea93ab6bd8b8837af66c330f30

따라서 AMQ Broker 버전에 따라 Operator에서 적용 가능한 환경 변수 이름을 결정합니다. Operator는 Init Container를 시작할 때 해당 이미지 값을 사용합니다.

참고

예제에 표시된 대로 Operator는SHA( Secure Hash Algorithm ) 값으로 표시되는 이미지를 사용합니다. 숫자 기호(#) 기호로 시작하는 주석 행은 SHA 값이 특정 컨테이너 이미지 태그에 해당함을 나타냅니다. 해당 컨테이너 이미지 태그가 0.4-21 형식의 유동 태그가 아닌 것을 확인합니다. 즉 Operator에서 사용하는 컨테이너 이미지는 여전히 고정되어 있습니다. Operator 는 Red Hat에서 사용할 수 있게 되면 새 마이크로 이미지 버전(즉, 0.4-21- n )을 자동으로 가져와서 사용하지 않습니다.

Init Container 이미지의 operator.yaml 구성 파일에 포함된 환경 변수에는 다음과 같은 이름 지정 규칙이 있습니다.

OpenShift Container Platform
RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_<AMQ_Broker_version_identifier>
IBM Z의 OpenShift Container Platform
RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_s390x_<AMQ_Broker_version_identifier>
IBM Power Systems의 OpenShift Container Platform
RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_ppc64le_<AMQ_Broker_version_identifier>

지원되는 각 컨테이너 플랫폼 및 특정 AMQ Broker 버전에 대한 환경 변수 이름이 표에 표시됩니다.

컨테이너 플랫폼환경 변수 이름

OpenShift Container Platform

  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_782
  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_790
  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_7100

IBM Z의 OpenShift Container Platform

  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_s390x_782
  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_s390x_790
  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_s390x_7100

IBM Power Systems의 OpenShift Container Platform

  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_ppc64le_782
  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_ppc64le_790
  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_ppc64le_7100

각 환경 변수의 값은 Red Hat에서 사용할 수 있는 Init Container 이미지를 지정합니다. 예를 들면 다음과 같습니다.

- name: RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_7100
  #value: registry.redhat.io/amq7/amq-broker-init-rhel8:0.4-21-1
  value: registry.redhat.io/amq7/amq-broker-init-rhel8@sha256:35b7d96d5065f280a528626abd2c3df84e79ccea93ab6bd8b8837af66c330f30

따라서 AMQ Broker 버전 및 컨테이너 플랫폼에 따라 Operator에서 해당 환경 변수 이름을 결정합니다. Operator는 Init Container를 시작할 때 해당 이미지 값을 사용합니다.

참고

예제에 표시된 대로 Operator는SHA( Secure Hash Algorithm ) 값으로 표시되는 이미지를 사용합니다. 숫자 기호(#) 기호로 시작하는 주석 행은 SHA 값이 특정 컨테이너 이미지 태그에 해당함을 나타냅니다. 해당 컨테이너 이미지 태그가 0.4-21 형식의 유동 태그가 아닌 것을 확인합니다. 즉 Operator에서 사용하는 컨테이너 이미지는 여전히 고정되어 있습니다. Operator 는 Red Hat에서 사용할 수 있게 되면 새 마이크로 이미지 버전(즉, 0.4-21- n )을 자동으로 가져와서 사용하지 않습니다.

추가 리소스