6장. 관리형 클러스터에 OpenShift DR Cluster Operator 설치
절차
- 각 관리형 클러스터에서 OperatorHub로 이동하여 OpenShift DR Cluster Operator 를 필터링합니다.
화면 지침에 따라
openshift-dr-system
프로젝트에 Operator를 설치합니다.참고OpenShift DR Cluster Operator
는 기본 관리 클러스터와 보조 관리 클러스터에 모두 설치되어 있어야 합니다.보안 전송 프로토콜 및 오브젝트 버킷에 대한 액세스를 검증하기 위해 Hub 클러스터에서 MCG 오브젝트 버킷의 대체 클러스터에 메타데이터를 저장할 수 있도록 s3 끝점 간의 SSL 액세스를 구성합니다.
참고모든 OpenShift 클러스터가 사용자 환경에 대해 서명된 신뢰할 수 있는 인증서 세트를 사용하여 배포된 경우 이 섹션을 건너뛸 수 있습니다.
기본 관리 클러스터 의 수신 인증서를 추출하고 출력을
primary.crt
에 저장합니다.$ oc get cm default-ingress-cert -n openshift-config-managed -o jsonpath="{['data']['ca-bundle\.crt']}" > primary.crt
Secondary 관리 클러스터 의 수신 인증서를 추출하고 출력을
secondary.crt
에 저장합니다.$ oc get cm default-ingress-cert -n openshift-config-managed -o jsonpath="{['data']['ca-bundle\.crt']}" > secondary.crt
Primary managed cluster,Secondary managed cluster 및 Hub 클러스터에서 파일 이름
cm-clusters-crt.yaml
로 원격 클러스터의 인증서 번들을 보관할 새 ConfigMap 을 만듭니다.참고이 예제 파일에 표시된 대로 각 클러스터에 대해 3개 이상의 인증서가 있을 수 있습니다.
apiVersion: v1 data: ca-bundle.crt: | -----BEGIN CERTIFICATE----- <copy contents of cert1 from primary.crt here> -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- <copy contents of cert2 from primary.crt here> -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- <copy contents of cert3 primary.crt here> -----END CERTIFICATE---- -----BEGIN CERTIFICATE----- <copy contents of cert1 from secondary.crt here> -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- <copy contents of cert2 from secondary.crt here> -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- <copy contents of cert3 from secondary.crt here> -----END CERTIFICATE----- kind: ConfigMap metadata: name: user-ca-bundle namespace: openshift-config
기본 관리 클러스터,보조 관리 클러스터, Hub 클러스터에서 다음 명령을 실행하여 파일을 만듭니다.
$ oc create -f cm-clusters-crt.yaml
출력 예:
configmap/user-ca-bundle created
중요Hub 클러스터에서 DRPolicy 리소스인 DRPolicy 리소스를 사용하여 오브젝트 버킷에 대한 액세스 권한을 확인하려면 Hub 클러스터에서 동일한 ConfigMap
cm-clusters-crt.yaml
을 생성해야 합니다.기본 프록시 클러스터 리소스를 수정합니다.
다음 콘텐츠를 복사하여 새 YAML 파일
proxy-ca.yaml
에 저장합니다.apiVersion: config.openshift.io/v1 kind: Proxy metadata: name: cluster spec: trustedCA: name: user-ca-bundle
이 새 파일을 기본 관리 클러스터,보조 관리 클러스터, Hub 클러스터 의 기본 프록시 리소스에 적용합니다.
$ oc apply -f proxy-ca.yaml
출력 예:
proxy.config.openshift.io/cluster configured
MCG(Multicloud Object Gateway) 키 및 외부 S3 엔드포인트를 검색합니다.
MCG가 주 관리 클러스터 및 보조 관리 클러스터에 설치되어 있는지 확인하고 단계가
준비
되었는지 확인합니다.$ oc get noobaa -n openshift-storage
출력 예:
NAME MGMT-ENDPOINTS S3-ENDPOINTS IMAGE PHASE AGE noobaa ["https://10.70.56.161:30145"] ["https://10.70.56.84:31721"] quay.io/rhceph-dev/mcg-core@sha256:c4b8857ee9832e6efc5a8597a08b81730b774b2c12a31a436e0c3fadff48e73d Ready 27h
다음 YAML 파일을 파일 이름
odrbucket.yaml
에 복사합니다.apiVersion: objectbucket.io/v1alpha1 kind: ObjectBucketClaim metadata: name: odrbucket namespace: openshift-dr-system spec: generateBucketName: "odrbucket" storageClassName: openshift-storage.noobaa.io
기본 관리 클러스터와 보조 관리 클러스터 모두에 MCG 버킷
odrbucket
을 만듭니다.$ oc create -f odrbucket.yaml
출력 예:
objectbucketclaim.objectbucket.io/odrbucket created
다음 명령을 사용하여 각 관리 클러스터의
odrbucket
OBC 액세스 키를 base-64 인코딩 값으로 추출합니다.$ oc get secret odrbucket -n openshift-dr-system -o jsonpath='{.data.AWS_ACCESS_KEY_ID}{"\n"}'
출력 예:
cFpIYTZWN1NhemJjbEUyWlpwN1E=
다음 명령을 사용하여 각 관리 클러스터의
odrbucket
OBC 시크릿 키를 base-64 인코딩 값으로 추출합니다.$ oc get secret odrbucket -n openshift-dr-system -o jsonpath='{.data.AWS_SECRET_ACCESS_KEY}{"\n"}'
출력 예:
V1hUSnMzZUoxMHRRTXdGMU9jQXRmUlAyMmd5bGwwYjNvMHprZVhtNw==
관리형 클러스터에 대한 S3 시크릿을 생성합니다.
이제 필요한 MCG 정보가 추출되었으므로 기본 관리 클러스터와 보조 관리 클러스터에서 생성된 새 시크릿이 추출되어야 합니다. 이러한 새 시크릿은 두 관리 클러스터의 MCG 액세스 및 시크릿 키를 저장합니다.
참고OpenShift DR에는 관리형 클러스터에서 워크로드의 관련 클러스터 데이터를 저장하고 장애 조치 또는 재배치 작업 중에 워크로드 복구를 오케스트레이션하기 위해 하나 이상의 S3 저장소가 필요합니다. 이러한 지침은 MCG(Multicloud Gateway)를 사용하여 필요한 오브젝트 버킷을 생성하는 데 적용할 수 있습니다. MCG는 이미 OpenShift Data Foundation을 설치함으로써 설치되어 있어야 합니다.
기본 관리 클러스터의 다음 S3 시크릿 YAML 형식을
odr-s3secret-hiera.yaml 파일 이름으로 복사합니다.
apiVersion: v1 data: AWS_ACCESS_KEY_ID: <primary cluster base-64 encoded access key> AWS_SECRET_ACCESS_KEY: <primary cluster base-64 encoded secret access key> kind: Secret metadata: name: odr-s3secret-primary namespace: openshift-dr-system
< primary cluster base-64 encoded access key > 및 < primary cluster base-64 encoded secret access key >를 이전 단계에서 검색된 실제 값으로 바꿉니다.
기본 관리 클러스터 및 보조 관리 클러스터에 이 시크릿을 생성합니다.
$ oc create -f odr-s3secret-primary.yaml
출력 예:
secret/odr-s3secret-primary created
보조 관리 클러스터의 다음 S3 시크릿 YAML 형식을
odr-s3secret-secondary.yaml
파일 이름으로 복사합니다.apiVersion: v1 data: AWS_ACCESS_KEY_ID: <secondary cluster base-64 encoded access key> AWS_SECRET_ACCESS_KEY: <secondary cluster base-64 encoded secret access key> kind: Secret metadata: name: odr-s3secret-secondary namespace: openshift-dr-system
< secondary 클러스터 base-64로 인코딩된 액세스 키 > 및 < secondary cluster base-64 encoded secret access key >를 4단계에서 검색된 실제 값으로 바꿉니다.
기본 관리 클러스터 및 보조 관리 클러스터에 이 시크릿을 생성합니다.
$ oc create -f odr-s3secret-secondary.yaml
출력 예:
secret/odr-s3secret-secondary created
중요액세스 및 시크릿 키의 값은 base-64로 인코딩 되어야 합니다. 키의 인코딩된 값이 이전 단계에서 검색되었습니다.
각 관리형 클러스터에서 OpenShift DR Cluster Operator ConfigMap을 구성합니다.
다음 명령을 사용하여 각 관리 클러스터에서 외부 S 3 endpoint s3 CompatibilityibleEndpoint 또는 route for MCG를 검색합니다.
$ oc get route s3 -n openshift-storage -o jsonpath --template="https://{.spec.host}{'\n'}"
출력 예:
https://s3-openshift-storage.apps.perf1.example.com
중요기본 관리 클러스터 및 보조 관리
클러스터 모두에 대해 각각 s3 CompatibilityibleEndpoint 경로 또는 s3-openshift-storage.apps.<baseDomain
> 및s3-openshift-storage.apps.<secondary clusterID>.<baseDomain
>을 검색해야 합니다.odrbucket
OBC 버킷 이름을 검색합니다.$ oc get configmap odrbucket -n openshift-dr-system -o jsonpath='{.data.BUCKET_NAME}{"\n"}'
출력 예:
odrbucket-2f2d44e4-59cb-4577-b303-7219be809dcd
중요고유한 s3Bucket 이름 odrbucket-<your value1 > 및 odrbucket-<your value2 >를 각각 기본 관리 클러스터 와 보조 관리 클러스터에서 검색해야 합니다.
ConfigMap
ramen-dr-cluster-operator-config
를 수정하여 새 콘텐츠를 추가합니다.$ oc edit configmap ramen-dr-cluster-operator-config -n openshift-dr-system
s3StoreProfiles
부터 기본 관리 클러스터의 ConfigMap과 보조 관리 클러스터 의 다음 새 콘텐츠를 추가합니다.[...] data: ramen_manager_config.yaml: | apiVersion: ramendr.openshift.io/v1alpha1 kind: RamenConfig [...] ramenControllerType: "dr-cluster" ### Start of new content to be added s3StoreProfiles: - s3ProfileName: s3-primary s3CompatibleEndpoint: https://s3-openshift-storage.apps.<primary clusterID>.<baseDomain> s3Region: primary s3Bucket: odrbucket-<your value1> s3SecretRef: name: odr-s3secret-primary namespace: openshift-dr-system - s3ProfileName: s3-secondary s3CompatibleEndpoint: https://s3-openshift-storage.apps.<secondary clusterID>.<baseDomain> s3Region: secondary s3Bucket: odrbucket-<your value2> s3SecretRef: name: odr-s3secret-secondary namespace: openshift-dr-system [...]