3.2. CLI를 사용하여 Operator 설치
각 Operator 릴리스에서는 아래에 설명된 대로 최신 AMQ Broker 7.12.3 Operator 설치 및 예제 파일을 다운로드해야 합니다.
이 섹션의 절차에서는 OpenShift CLI(명령줄 인터페이스)를 사용하여 지정된 OpenShift 프로젝트에서 AMQ Broker 7.12의 최신 버전을 설치하고 배포하는 방법을 보여줍니다. 후속 절차에서는 이 Operator를 사용하여 일부 브로커 인스턴스를 배포합니다.
- OperatorHub 그래픽 인터페이스를 사용하는 AMQ Broker Operator를 설치하는 다른 방법은 3.3절. “OperatorHub를 사용하여 Operator 설치” 을 참조하십시오.
- 기존 Operator 기반 브로커 배포 업그레이드에 대한 자세한 내용은 6장. Operator 기반 브로커 배포 업그레이드 을 참조하십시오.
3.2.1. Operator 배포 준비 링크 복사링크가 클립보드에 복사되었습니다!
CLI를 사용하여 Operator를 배포하기 전에 Operator 설치 파일을 다운로드하고 배포를 준비해야 합니다.
프로세스
- 웹 브라우저에서 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-7.12.3-ocp-install-examples-rhel8.zip
$ cd ~/broker/operator $ unzip amq-broker-operator-7.12.3-ocp-install-examples-rhel8.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 아카이브를 추출할 때 생성된 디렉터리로 전환합니다. 예를 들면 다음과 같습니다.
cd amq-broker-operator-7.12.3-ocp-install-examples
$ cd amq-broker-operator-7.12.3-ocp-install-examplesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 클러스터 관리자로 OpenShift Container Platform에 로그인합니다. 예를 들면 다음과 같습니다.
oc login -u system:admin
$ oc login -u system:adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow Operator를 설치할 프로젝트를 지정합니다. 새 프로젝트를 생성하거나 기존 프로젝트로 전환할 수 있습니다.
새 프로젝트를 생성합니다.
oc new-project <project_name>
$ oc new-project <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 또는 기존 프로젝트로 전환합니다.
oc project <project_name>
$ oc project <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Operator와 함께 사용할 서비스 계정을 지정합니다.
-
추출한 Operator 아카이브의
배포디렉터리에서service_account.yaml파일을 엽니다. -
kind요소가ServiceAccount로 설정되어 있는지 확인합니다. -
기본 서비스 계정 이름을 변경하려면
metadata섹션에서amq-broker-controller-manager를 사용자 지정 이름으로 교체합니다. 프로젝트에서 서비스 계정을 생성합니다.
oc create -f deploy/service_account.yaml
$ oc create -f deploy/service_account.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
추출한 Operator 아카이브의
Operator의 역할 이름을 지정합니다.
-
role.yaml파일을 엽니다. 이 파일은 Operator가 사용하고 수정할 수 있는 리소스를 지정합니다. -
kind요소가Role로 설정되어 있는지 확인합니다. -
기본 역할 이름을 변경하려면
metadata섹션에서amq-broker-operator-role을 사용자 지정 이름으로 교체합니다. 프로젝트에서 역할을 생성합니다.
oc create -f deploy/role.yaml
$ oc create -f deploy/role.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
Operator에 대한 역할 바인딩을 지정합니다. 역할 바인딩은 지정한 이름에 따라 이전에 생성된 서비스 계정을 Operator 역할에 바인딩합니다.
-
role_binding.yaml파일을 엽니다. ServiceAccount및Role의name값이service_account.yaml및role.yaml파일에 지정된 값과 일치하는지 확인합니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 프로젝트에 역할 바인딩을 생성합니다.
oc create -f deploy/role_binding.yaml
$ oc create -f deploy/role_binding.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
Operator의 리더 선택 역할 바인딩을 지정합니다. 역할 바인딩은 지정한 이름에 따라 이전에 생성된 서비스 계정을 리더 선택 역할에 바인딩합니다.
Operator에 대한 리더 선택 역할을 생성합니다.
oc create -f deploy/election_role.yaml
$ oc create -f deploy/election_role.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 프로젝트에서 리더 선택 역할 바인딩을 생성합니다.
oc create -f deploy/election_role_binding.yaml
$ oc create -f deploy/election_role_binding.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
(선택 사항) Operator에서 여러 네임스페이스를 조사하려면 다음 단계를 완료합니다.
참고OpenShift Container Platform 클러스터에 AMQ Broker용 Operator가 이미 포함된 경우 새 Operator에서 기존 Operator와 동일한 네임스페이스를 감시하지 않아야 합니다. 기존 Operator에서 조사하는 네임스페이스를 식별하는 방법에 대한 자세한 내용은 기존 Operator 에서 조사한 네임스페이스 식별을 참조하십시오.
-
다운로드 및 추출한 Operator 아카이브의 배포 디렉터리에서
operator_yaml파일을 엽니다. Operator에서 클러스터의 모든 네임스페이스를 조사하려면
WATCH_NAMESPACE섹션에서value속성을 추가하고 값을 별표로 설정합니다.WATCH_NAMESPACE섹션에서 기존 속성을 주석 처리합니다. 예를 들면 다음과 같습니다.- name: WATCH_NAMESPACE value: "*" # valueFrom: # fieldRef: # fieldPath: metadata.namespace
- name: WATCH_NAMESPACE value: "*" # valueFrom: # fieldRef: # fieldPath: metadata.namespaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고충돌을 방지하려면 여러 Operator가 동일한 네임스페이스를 감시하지 않도록 합니다. 예를 들어 클러스터의 모든 네임스페이스를 조사하기 위해 Operator를 배포하는 경우 다른 Operator를 배포하여 개별 네임스페이스를 조사할 수 없습니다. Operator가 이미 클러스터에 배포된 경우 다음 단계에 설명된 대로 새 Operator에서 조사하는 네임스페이스 목록을 지정할 수 있습니다.
Operator에서
WATCH_NAMESPACE섹션에서 클러스터의 여러 네임스페이스를 조사하지만 모두 조사하려면 네임스페이스 목록을 지정합니다. 기존 Operator에서 조사하는 네임스페이스를 제외해야 합니다. 예를 들면 다음과 같습니다.- name: WATCH_NAMESPACE value: "namespace1, namespace2"`.
- name: WATCH_NAMESPACE value: "namespace1, namespace2"`.Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
다운로드 및 추출한 Operator 아카이브의 배포 디렉터리에서
cluster_role_binding.yaml파일을 엽니다. 주체 섹션에서 Operator를 배포하는 OpenShift Container Platform 프로젝트에 해당하는 네임스페이스를 지정합니다. 예를 들면 다음과 같습니다.
Subjects: - kind: ServiceAccount name: amq-broker-controller-manager namespace: operator-project
Subjects: - kind: ServiceAccount name: amq-broker-controller-manager namespace: operator-projectCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고이전 버전의 Operator를 사용하여 이전에 브로커를 배포하고 Operator를 배포하여 여러 네임스페이스를 조사하려면 업그레이드하기 전에 를 참조하십시오.
프로젝트에 클러스터 역할을 생성합니다.
oc create -f deploy/cluster_role.yaml
$ oc create -f deploy/cluster_role.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 프로젝트에 클러스터 역할 바인딩을 생성합니다.
oc create -f deploy/cluster_role_binding.yaml
$ oc create -f deploy/cluster_role_binding.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
다운로드 및 추출한 Operator 아카이브의 배포 디렉터리에서
다음 절차에서는 프로젝트에 Operator를 배포합니다.
3.2.2. CLI를 사용하여 Operator 배포 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션의 절차에서는 OpenShift CLI(명령줄 인터페이스)를 사용하여 OpenShift 프로젝트에서 AMQ Broker 7.12용 최신 버전의 Operator를 배포하는 방법을 보여줍니다.
사전 요구 사항
- Operator 배포를 위한 OpenShift 프로젝트를 이미 준비해야 합니다. 3.2.1절. “Operator 배포 준비”을 참조하십시오.
- AMQ Broker 7.3부터 새 버전의 Red Hat Ecosystem Catalog를 사용하여 컨테이너 이미지에 액세스합니다. 이 새 버전의 레지스트리를 사용하려면 이미지에 액세스하기 전에 인증된 사용자가되어야 합니다. 이 섹션의 절차를 수행하려면 먼저 Red Hat Container Registry Authentication 에 설명된 단계를 완료해야 합니다.
영구 스토리지로 브로커를 배포하고 OpenShift 클러스터에 컨테이너 네이티브 스토리지가 없는 경우 PV(영구 볼륨)를 수동으로 프로비저닝하고 Operator에서 클레임할 수 있는지 확인해야 합니다. 예를 들어 영구 스토리지가 있는 두 브로커의 클러스터를 생성하려면(즉, Custom Resource에서
persistenceEnabled=true를 설정하여) 두 개의 PV를 사용할 수 있어야 합니다. 기본적으로 각 브로커 인스턴스에는 2GiB의 스토리지가 필요합니다.사용자 정의 리소스에서
persistenceEnabled=false를 지정하면 배포된 브로커는 임시 스토리지를 사용합니다. 임시 스토리지는 브로커 포드를 다시 시작할 때마다 기존 데이터가 손실됩니다.영구 스토리지 프로비저닝에 대한 자세한 내용은 다음을 참조하십시오.
프로세스
OpenShift CLI(명령줄 인터페이스)에서 OpenShift에 클러스터 관리자로 로그인합니다. 예를 들면 다음과 같습니다.
oc login -u system:admin
$ oc login -u system:adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이전에 Operator 배포를 위해 준비한 프로젝트로 전환합니다. 예를 들면 다음과 같습니다.
oc project <project_name>
$ oc project <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이전에 Operator 설치 아카이브를 추출할 때 생성된 디렉터리로 전환합니다. 예를 들면 다음과 같습니다.
cd ~/broker/operator/amq-broker-operator-7.12.3-ocp-install-examples
$ cd ~/broker/operator/amq-broker-operator-7.12.3-ocp-install-examplesCopy to Clipboard Copied! Toggle word wrap Toggle overflow Operator에 포함된 CRD를 배포합니다. Operator를 배포하고 시작하기 전에 OpenShift 클러스터에 CRD를 설치해야 합니다.
기본 브로커 CRD를 배포합니다.
oc create -f deploy/crds/broker_activemqartemis_crd.yaml
$ oc create -f deploy/crds/broker_activemqartemis_crd.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 주소 CRD를 배포합니다.
oc create -f deploy/crds/broker_activemqartemisaddress_crd.yaml
$ oc create -f deploy/crds/broker_activemqartemisaddress_crd.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow scaledown 컨트롤러 CRD를 배포합니다.
oc create -f deploy/crds/broker_activemqartemisscaledown_crd.yaml
$ oc create -f deploy/crds/broker_activemqartemisscaledown_crd.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 보안 CRD를 배포합니다.
oc create -f deploy/crds/broker_activemqartemissecurity_crd.yaml
$ oc create -f deploy/crds/broker_activemqartemissecurity_crd.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Red Hat Ecosystem Catalog에서 인증에 사용되는 계정과 연결된 풀 시크릿을 OpenShift 프로젝트의
기본,배포자및빌더서비스 계정으로 연결합니다.oc secrets link --for=pull default <secret_name> oc secrets link --for=pull deployer <secret_name> oc secrets link --for=pull builder <secret_name>
$ oc secrets link --for=pull default <secret_name> $ oc secrets link --for=pull deployer <secret_name> $ oc secrets link --for=pull builder <secret_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다운로드 및 추출한 Operator 아카이브의
배포디렉터리에서operator.yaml파일을 엽니다. 아래 표시된 대로spec.containers.image속성 값이 Operator의 7.12.3-opr-1 버전에 해당하는지 확인합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고operator.yaml파일에서 Operator는 SHA( Secure Hash Algorithm ) 값으로 표시되는 이미지를 사용합니다. 숫자 기호(#) 기호로 시작하는 주석 행은 SHA 값이 특정 컨테이너 이미지 태그에 해당함을 나타냅니다.Operator를 배포합니다.
oc create -f deploy/operator.yaml
$ oc create -f deploy/operator.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift 프로젝트에서 Operator는 새 Pod에서 시작됩니다.
OpenShift Container Platform 웹 콘솔의 Operator Pod의 Events 탭에 대한 정보는 OpenShift가 사용자가 지정한 Operator 이미지를 배포했음을 확인하고, OpenShift 클러스터의 노드에 새 컨테이너를 할당했으며, 새 컨테이너를 시작했습니다.
또한 Pod에서 로그 탭을 클릭하면 출력에 다음과 같은 행이 포함되어야 합니다.
... {"level":"info","ts":1553619035.8302743,"logger":"kubebuilder.controller","msg":"Starting Controller","controller":"activemqartemisaddress-controller"} {"level":"info","ts":1553619035.830541,"logger":"kubebuilder.controller","msg":"Starting Controller","controller":"activemqartemis-controller"} {"level":"info","ts":1553619035.9306898,"logger":"kubebuilder.controller","msg":"Starting workers","controller":"activemqartemisaddress-controller","worker count":1} {"level":"info","ts":1553619035.9311671,"logger":"kubebuilder.controller","msg":"Starting workers","controller":"activemqartemis-controller","worker count":1}... {"level":"info","ts":1553619035.8302743,"logger":"kubebuilder.controller","msg":"Starting Controller","controller":"activemqartemisaddress-controller"} {"level":"info","ts":1553619035.830541,"logger":"kubebuilder.controller","msg":"Starting Controller","controller":"activemqartemis-controller"} {"level":"info","ts":1553619035.9306898,"logger":"kubebuilder.controller","msg":"Starting workers","controller":"activemqartemisaddress-controller","worker count":1} {"level":"info","ts":1553619035.9311671,"logger":"kubebuilder.controller","msg":"Starting workers","controller":"activemqartemis-controller","worker count":1}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이전 출력은 새로 배포한 Operator가 Kubernetes와 통신하고, 브로커 및 주소 지정의 컨트롤러가 실행 중인지, 이러한 컨트롤러에서 일부 작업자를 시작했는지 확인합니다.
지정된 OpenShift 프로젝트에 AMQ Broker Operator의 단일 인스턴스 만 배포하는 것이 좋습니다. Operator 배포의 spec.replicas 속성을 1 보다 큰 값으로 설정하거나 동일한 프로젝트에서 Operator를 두 번 이상 배포하는 것은 권장되지 않습니다.
추가 리소스
- OperatorHub 그래픽 인터페이스를 사용하는 AMQ Broker Operator를 설치하는 다른 방법은 3.3절. “OperatorHub를 사용하여 Operator 설치” 을 참조하십시오.