1.4. 연결이 끊긴 환경에서 다중 클러스터 글로벌 허브 설치
클러스터가 제한된 네트워크에 있는 경우 연결이 끊긴 환경에 다중 클러스터 글로벌 허브 Operator를 배포할 수 있습니다.
필수 액세스: 클러스터 관리자
1.4.1. 사전 요구 사항
연결이 끊긴 환경에 다중 클러스터 글로벌 허브를 설치하기 전에 다음 요구 사항을 충족해야 합니다.
- 이미지 레지스트리와 bastion 호스트는 인터넷과 미러 레지스트리에 대한 액세스 권한이 있어야 합니다.
- 클러스터에 Operator Lifecycle Manager를 설치합니다. OLM(Operator Lifecycle Manager) 을 참조하십시오.
- Red Hat Advanced Cluster Management for Kubernetes를 설치합니다.
다음 명령줄 인터페이스를 설치합니다.
- OpenShift Container Platform 명령줄입니다. OpenShift Container Platform CLI 시작하기를 참조하십시오.
-
opm
명령줄입니다. opm CLI 설치를 참조하십시오. -
oc-mirror
플러그인 oc-plugin을 사용하여 연결이 끊긴 설치의 이미지 미러링 을 참조하십시오.
1.4.2. 미러 레지스트리 구성
연결이 끊긴 환경에서 다중 클러스터 글로벌 허브를 설치하려면 로컬 미러 이미지 레지스트리를 사용해야 합니다. 이 시점에서 OpenShift Container Platform 클러스터 설치 중에 미러 레지스트리를 설정했다고 가정합니다.
다중 클러스터 글로벌 허브의 미러 레지스트리를 프로비저닝하려면 다음 절차를 완료합니다.
1.4.2.1. oc-mirror 플러그인을 사용하여 미러 카탈로그에서 Operator 패키지 생성
Red Hat은 registry.redhat.io/redhat/redhat-operator-index
인덱스 이미지에서 제공하는 Red Hat Operator 카탈로그에 다중 클러스터 글로벌 허브 및 AMQ Streams Operator를 제공합니다. 이 카탈로그 인덱스 이미지의 미러를 준비할 때 Red Hat에서 제공하는 전체 카탈로그를 미러링하거나 사용하려는 Operator 패키지만 포함된 하위 집합을 미러링할 수 있습니다.
전체 미러 카탈로그를 생성하는 경우 다중 클러스터 글로벌 허브 및 AMQ Streams를 설치하는 데 필요한 모든 패키지가 포함되어 있으므로 특별한 고려 사항이 필요하지 않습니다. 그러나 특정 패키지를 식별하는 부분 또는 필터링된 미러링된 카탈로그를 생성하는 경우 목록에 multicluster-global-hub-operator-rh
및 amq-streams
패키지 이름을 포함해야 합니다.
multicluster-global-hub-operator-rh
및 amq-streams
패키지의 로컬 미러 레지스트리를 생성하려면 다음 단계를 완료합니다.
ImageSetConfiguration
YAML 파일을 생성하여 Operator 이미지를 구성하고 추가합니다. YAML 파일은 다음 콘텐츠와 유사할 수 있습니다. 현재 버전은4.x
를 대체합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow kind: ImageSetConfiguration apiVersion: mirror.openshift.io/v1alpha2 storageConfig: registry: imageURL: myregistry.example.com:5000/mirror/oc-mirror-metadata mirror: platform: channels: - name: stable-4.x type: ocp operators: - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.x packages: - name: multicluster-global-hub-operator-rh - name: amq-streams additionalImages: [] helm: {}
kind: ImageSetConfiguration apiVersion: mirror.openshift.io/v1alpha2 storageConfig: registry: imageURL: myregistry.example.com:5000/mirror/oc-mirror-metadata mirror: platform: channels: - name: stable-4.x type: ocp operators: - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.x packages: - name: multicluster-global-hub-operator-rh - name: amq-streams additionalImages: [] helm: {}
다음 명령을 사용하여 대상 미러 레지스트리에 직접 설정된 이미지를 미러링합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc mirror --config=./imageset-config.yaml docker://myregistry.example.com:5000
oc mirror --config=./imageset-config.yaml docker://myregistry.example.com:5000
- 완전히 연결이 끊긴 환경에서 이미지 세트를 미러링합니다. 자세한 내용은 연결이 끊긴 설치의 이미지 미러링을 참조하십시오.
1.4.2.2. 연결이 끊긴 클러스터에 레지스트리 및 카탈로그 추가
연결이 끊긴 클러스터에서 미러 레지스트리 및 카탈로그를 사용할 수 있도록 하려면 다음을 수행합니다. 다음 단계를 완료합니다.
Operator Hub의 기본 카탈로그 소스를 비활성화합니다. 다음 명령을 실행하여
OperatorHub
리소스를 업데이트합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc patch OperatorHub cluster --type json \ -p '[{"op": "add", "path": "/spec/disableAllDefaultSources", "value": true}]'
oc patch OperatorHub cluster --type json \ -p '[{"op": "add", "path": "/spec/disableAllDefaultSources", "value": true}]'
- 절차를 완료하고 Operator 카탈로그 미러링을 통해 Operator 카탈로그를 미러링합니다.
미러링된 카탈로그의
CatalogSource
리소스를openshift-marketplace
네임스페이스에 추가합니다.CatalogSource
YAML 파일은 다음 예와 유사할 수 있습니다.4.x
가 지원되는 버전으로 설정되어 있습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow apiVersion: operators.coreos.com/v1alpha1 kind: CatalogSource metadata: name: my-mirror-catalog-source namespace: openshift-marketplace spec: image: myregistry.example.com:5000/mirror/my-operator-index:v4.x sourceType: grpc secrets: - <global-hub-secret>
apiVersion: operators.coreos.com/v1alpha1 kind: CatalogSource metadata: name: my-mirror-catalog-source namespace: openshift-marketplace spec: image: myregistry.example.com:5000/mirror/my-operator-index:v4.x sourceType: grpc secrets: - <global-hub-secret>
-
참고:
metadata.name
필드의 값을 기록해 둡니다.
-
참고:
- 업데이트된 파일을 저장합니다.
사용 가능한
PackageManifest
리소스를 쿼리하여 연결이 끊긴 클러스터에서 필요한 패키지를 사용할 수 있는지 확인합니다. 다음 명령을 사용하여 다음 명령을 실행합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc -n openshift-marketplace get packagemanifests
oc -n openshift-marketplace get packagemanifests
표시되는 목록에는
multicluster-global-hub-operator-rh
및amq-streams
패키지가 미러 카탈로그의 카탈로그 소스에서 제공됨을 나타내는 항목이 포함되어야 합니다.
1.4.3. 이미지 레지스트리 구성
클러스터가 인터넷 호스팅 레지스트리가 아닌 로컬 미러 레지스트리에서 다중 클러스터 글로벌 허브 Operator의 컨테이너 이미지를 가져오려면 미러 레지스트리로 이미지 참조를 리디렉션하도록 연결이 끊긴 클러스터에 ImageContentSourcePolicy
리소스를 구성해야 합니다. ImageContentSourcePolicy
는 이미지 다이제스트 가 있는 이미지 미러만 지원합니다.
oc adm catalog mirror
명령을 사용하여 카탈로그를 미러링한 경우 필요한 이미지 콘텐츠 소스 정책 구성은 해당 명령으로 생성된 manifests-
디렉터리 내부의 imageContentSourcePolicy.yaml
파일에 있습니다.
oc-mirror
플러그인을 사용하여 카탈로그를 미러링한 경우 imageContentSourcePolicy.yaml
파일은 oc-mirror-workspace/results-
디렉터리에서 oc-mirror
-workspace/results- 디렉터리에 있습니다.
두 경우 모두 oc apply
또는 oc replace 명령을 사용하여 연결이 끊긴 명령에 정책을 적용할 수 있습니다(예:
).
oc replace
-f ./<path>/imageContentSourcePolicy.yaml
필요한 이미지 콘텐츠 소스 정책 설명은 미러 레지스트리를 생성한 방법에 따라 다를 수 있지만 다음 예와 유사합니다.
apiVersion: operator.openshift.io/v1alpha1 kind: ImageContentSourcePolicy metadata: labels: operators.openshift.org/catalog: "true" name: global-hub-operator-icsp spec: repositoryDigestMirrors: - mirrors: - myregistry.example.com:5000/multicluster-globalhub source: registry.redhat.io/multicluster-globalhub - mirrors: - myregistry.example.com:5000/openshift4 source: registry.redhat.io/openshift4 - mirrors: - myregistry.example.com:5000/redhat source: registry.redhat.io/redhat
apiVersion: operator.openshift.io/v1alpha1
kind: ImageContentSourcePolicy
metadata:
labels:
operators.openshift.org/catalog: "true"
name: global-hub-operator-icsp
spec:
repositoryDigestMirrors:
- mirrors:
- myregistry.example.com:5000/multicluster-globalhub
source: registry.redhat.io/multicluster-globalhub
- mirrors:
- myregistry.example.com:5000/openshift4
source: registry.redhat.io/openshift4
- mirrors:
- myregistry.example.com:5000/redhat
source: registry.redhat.io/redhat
ManagedClusterImageRegistry
를 사용하여 다양한 관리 허브에 대해 다양한 이미지 레지스트리를 구성할 수 있습니다. ManagedClusterImageRegistry API를 사용하여 에이전트 이미지를 교체하려면 ManagedClusterImageRegistry
가 있는 클러스터 가져오기 를 참조하십시오.
이전 단계를 완료하면 레이블과 주석이 선택한 ManagedCluster
에 추가됩니다. 즉 클러스터의 에이전트 이미지가 미러 이미지로 교체됩니다.
-
Label:
multicluster-global-hub.io/image-registry=<namespace.managedclusterimageregistry-name>
-
Annotation:
multicluster-global-hub.io/image-registries: <image-registry-info>
1.4.3.1. 이미지 풀 시크릿 구성
구독한 Operator에서 참조하는 Operator 또는 Operand 이미지에 프라이빗 레지스트리에 액세스해야 하는 경우 클러스터의 모든 네임스페이스 또는 개별 대상 테넌트 네임스페이스에 대한 액세스 권한을 제공할 수 있습니다.
1.4.3.1.1. OpenShift Container Platform 클러스터에서 다중 클러스터 글로벌 허브 이미지 풀 시크릿 구성
기존 OpenShift Container Platform 클러스터에서 이미지 풀 시크릿을 구성할 수 있습니다.
참고: 기존 클러스터에 이미지 풀 시크릿을 적용하면 모든 노드가 롤링 재시작됩니다.
풀 시크릿을 구성하려면 다음 단계를 완료합니다.
풀 시크릿에서 사용자 이름을 내보냅니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow export USER=<the-registry-user>
export USER=<the-registry-user>
풀 시크릿에서 암호를 내보냅니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow export PASSWORD=<the-registry-password>
export PASSWORD=<the-registry-password>
풀 시크릿을 복사합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get secret/pull-secret -n openshift-config --template='{{index .data ".dockerconfigjson" | base64decode}}' > pull_secret.yaml
oc get secret/pull-secret -n openshift-config --template='{{index .data ".dockerconfigjson" | base64decode}}' > pull_secret.yaml
풀 시크릿을 사용하여 로그인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc registry login --registry=${REGISTRY} --auth-basic="$USER:$PASSWORD" --to=pull_secret.yaml
oc registry login --registry=${REGISTRY} --auth-basic="$USER:$PASSWORD" --to=pull_secret.yaml
다중 클러스터 글로벌 허브 이미지 풀 시크릿을 지정합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=pull_secret.yaml
oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=pull_secret.yaml
이전 풀 시크릿을 제거합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow rm pull_secret.yaml
rm pull_secret.yaml
1.4.3.1.2. 개별 네임스페이스에 대한 다중 클러스터 글로벌 허브 이미지 풀 시크릿 구성
다음 단계를 완료하여 개별 네임스페이스에 이미지 가져오기 보안을 구성할 수 있습니다.
다음 명령을 실행하여 테넌트 네임스페이스에 보안을 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc create secret generic <secret_name> -n <tenant_namespace> \ --from-file=.dockerconfigjson=<path/to/registry/credentials> \ --type=kubernetes.io/dockerconfigjson
oc create secret generic <secret_name> -n <tenant_namespace> \ --from-file=.dockerconfigjson=<path/to/registry/credentials> \ --type=kubernetes.io/dockerconfigjson
Operator 또는 피연산자의 서비스 계정에 보안을 연결합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc secrets link <operator_sa> -n <tenant_namespace> <secret_name> --for=pull
oc secrets link <operator_sa> -n <tenant_namespace> <secret_name> --for=pull
1.4.3.2. Global Hub Operator 설치
Red Hat OpenShift Container Platform 웹 콘솔을 사용하여 OperatorHub에서 Operator를 설치하고 구독할 수 있습니다. 절차 를 보려면 클러스터에 Operator 추가 를 참조하십시오. Operator를 추가한 후 다음 명령을 실행하여 multicluster 글로벌 허브 Operator의 상태를 확인할 수 있습니다.
oc get pods -n multicluster-global-hub NAME READY STATUS RESTARTS AGE multicluster-global-hub-operator-687584cb7c-fnftj 1/1 Running 0 2m12s
oc get pods -n multicluster-global-hub
NAME READY STATUS RESTARTS AGE
multicluster-global-hub-operator-687584cb7c-fnftj 1/1 Running 0 2m12s
1.4.4. 추가 리소스
- 미러 레지스트리 생성에 대한 자세한 내용은 미러 레지스트리 만들기를 참조하십시오.
- 이미지 미러링에 대한 자세한 내용은 Disconnected installation mirroring 을 참조하십시오.
- Operator 카탈로그 미러링에 대한 자세한 내용은 Operator 카탈로그 미러링을 참조하십시오.