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.enabled
가true
로 설정되지 않거나spec.version
이7.7.0
이전의 AMQ Broker 버전으로 설정된 경우 Operator는 최신 버전의 AMQ Broker(즉,7.10.7
)를 사용합니다.
그러면 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 |
|
IBM Z의 OpenShift Container Platform |
|
IBM Power Systems의 OpenShift Container Platform |
|
각 환경 변수의 값은 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:982ba18be1ac285722bc0ca8e85d2a42b8b844ab840b01425e79e3eeee6ee5b9
따라서 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:f37f98c809c6f29a83e3d5a3ac4494e28efe9b25d33c54f533c6a08662244622
따라서 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 |
|
IBM Z의 OpenShift Container Platform |
|
IBM Power Systems의 OpenShift Container Platform |
|
각 환경 변수의 값은 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:f37f98c809c6f29a83e3d5a3ac4494e28efe9b25d33c54f533c6a08662244622
따라서 AMQ Broker 버전 및 컨테이너 플랫폼에 따라 Operator에서 해당 환경 변수 이름을 결정합니다. Operator는 Init Container를 시작할 때 해당 이미지 값을 사용합니다.
예제에 표시된 대로 Operator는SHA( Secure Hash Algorithm ) 값으로 표시되는 이미지를 사용합니다. 숫자 기호(#
) 기호로 시작하는 주석 행은 SHA 값이 특정 컨테이너 이미지 태그에 해당함을 나타냅니다. 해당 컨테이너 이미지 태그가 0.4-21
형식의 유동 태그가 아닌 것을 확인합니다. 즉 Operator에서 사용하는 컨테이너 이미지는 여전히 고정되어 있습니다. Operator 는 Red Hat에서 사용할 수 있게 되면 새 마이크로 이미지 버전(즉, 0.4-21- n
)을 자동으로 가져와서 사용하지 않습니다.
추가 리소스
- AMQ Broker Operator를 사용하여 브로커 배포를 생성하는 방법을 알아보려면 3장. AMQ Broker Operator를 사용하여 OpenShift Container Platform에 AMQ Broker 배포 를 참조하십시오.
- Operator에서 Init Container를 사용하여 브로커 구성을 생성하는 방법에 대한 자세한 내용은 4.1절. “Operator에서 브로커 구성을 생성하는 방법” 을 참조하십시오.
- 사용자 지정 Init Container 이미지를 빌드하고 지정하는 방법을 알아보려면 4.7절. “사용자 정의 Init Container 이미지 지정” 를 참조하십시오.