1.5. 다중 클러스터 엔진 Operator 설치 및 업그레이드


다중 클러스터 엔진 Operator는 클러스터 플릿 관리를 개선하는 소프트웨어 운영자입니다. 멀티 클러스터 엔진 Operator는 클라우드 및 데이터 센터 전체에서 Red Hat OpenShift Container Platform 및 Kubernetes 클러스터 라이프사이클 관리를 지원합니다.

이 문서는 특정 구성 요소 또는 기능이 도입되어 최신 버전의 OpenShift Container Platform에서만 테스트되지 않는 한 가장 빨리 지원되는 OpenShift Container Platform 버전을 참조합니다.

전체 지원 정보는 다중 클러스터 엔진 Operator 지원 매트릭스 를 참조하십시오. 라이프 사이클 정보는 Red Hat OpenShift Container Platform 라이프 사이클 정책을 참조하십시오.

중요: Red Hat Advanced Cluster Management를 사용하는 경우 Kubernetes Operator를 위한 다중 클러스터 엔진이 클러스터에 이미 설치되어 있습니다.

더 이상 사용되지 않음: 다중 클러스터 엔진 Operator 2.4 및 이전 버전은 더 이상 지원되지 않습니다. 문서는 사용할 수 있지만 수정된 문제 또는 기타 업데이트에 대한 에라타 릴리스는 없습니다.

모범 사례: 최신 버전으로 업그레이드합니다.

다음 설명서를 참조하십시오.

1.5.1. 온라인으로 연결하는 동안 설치

다중 클러스터 엔진 Operator는 다중 클러스터 엔진 Operator를 포함하는 구성 요소의 설치, 업그레이드 및 제거를 관리하는 Operator Lifecycle Manager와 함께 설치됩니다.

필수 액세스: 클러스터 관리자

중요:

  • 외부 클러스터에 구성된 ManagedCluster 리소스가 있는 클러스터에 다중 클러스터 엔진 Operator를 설치할 수 없습니다. 다중 클러스터 엔진 Operator를 설치하려면 먼저 외부 클러스터에서 ManagedCluster 리소스를 제거해야 합니다.
  • OpenShift Container Platform Dedicated 환경의 경우 cluster-admin 권한이 있어야 합니다. 기본적으로 dedicated-admin 역할에는 OpenShift Container Platform Dedicated 환경에서 네임스페이스를 생성하는 데 필요한 권한이 없습니다.
  • 기본적으로 다중 클러스터 엔진 Operator 구성 요소는 추가 구성없이 OpenShift Container Platform 클러스터의 작업자 노드에 설치됩니다. OpenShift Container Platform OperatorHub 웹 콘솔 인터페이스를 사용하거나 OpenShift Container Platform CLI를 사용하여 다중 클러스터 엔진 Operator를 작업자 노드에 설치할 수 있습니다.
  • 인프라 노드를 사용하여 OpenShift Container Platform 클러스터를 구성하는 경우 추가 리소스 매개변수와 함께 OpenShift Container Platform CLI를 사용하여 다중 클러스터 엔진 Operator를 해당 인프라 노드에 설치할 수 있습니다. 자세한 내용은 인프라 노드에 다중 클러스터 엔진 설치 섹션을 참조하십시오.
  • OpenShift Container Platform 또는 다중 클러스터 엔진 Operator에서 생성하지 않은 Kubernetes 클러스터를 가져오려면 이미지 가져오기 보안을 구성해야 합니다. 이미지 풀 시크릿 및 기타 고급 구성을 구성하는 방법에 대한 자세한 내용은 이 문서의 고급 구성 섹션의 옵션을 참조하십시오.

1.5.1.1. 사전 요구 사항

다중 클러스터 엔진 Operator를 설치하기 전에 다음 사전 요구 사항을 참조하십시오.

  • OpenShift Container Platform 클러스터는 콘솔에서 OperatorHub 카탈로그의 다중 클러스터 엔진 Operator에 액세스할 수 있어야 합니다.
  • catalog.redhat.com 에 액세스해야 합니다.
  • 클러스터에 외부 클러스터에 구성된 ManagedCluster 리소스가 없습니다.
  • 지원되는 OpenShift Container Platform 버전은 환경에 배포해야 하며 OpenShift Container Platform CLI로 로그인해야 합니다. 다음 설치 설명서를 참조하십시오.

  • oc 명령을 실행하도록 OpenShift Container Platform CLI(명령줄 인터페이스)를 구성해야 합니다. OpenShift Container Platform CLI 설치 및 구성에 대한 정보는 CLI로 시작하기 를 참조하십시오.
  • OpenShift Container Platform 권한에서 네임스페이스를 생성할 수 있어야 합니다.
  • Operator의 종속 항목에 액세스하려면 인터넷 연결이 있어야 합니다.
  • OpenShift Container Platform Dedicated 환경에 설치하려면 다음을 참조하십시오.

    • OpenShift Container Platform Dedicated 환경이 구성되어 실행되고 있어야 합니다.
    • 엔진을 설치하는 OpenShift Container Platform Dedicated 환경에 대한 cluster-admin 권한이 있어야 합니다.
  • Red Hat OpenShift Container Platform과 함께 제공되는 지원 설치 관리자를 사용하여 관리 클러스터를 생성하려면 요구 사항에 대한 OpenShift Container Platform 설명서의 지원 설치 관리자 준비를 참조하십시오.

1.5.1.2. OpenShift Container Platform 설치 확인

레지스트리 및 스토리지 서비스를 포함하여 지원되는 OpenShift Container Platform 버전이 설치되어 작동해야 합니다. OpenShift Container Platform 설치에 대한 자세한 내용은 OpenShift Container Platform 설명서를 참조하십시오.

  1. 다중 클러스터 엔진 Operator가 OpenShift Container Platform 클러스터에 아직 설치되지 않았는지 확인합니다. 다중 클러스터 엔진 Operator는 각 OpenShift Container Platform 클러스터에서 하나의 단일 설치만 허용합니다. 설치가 없는 경우 다음 단계를 계속 진행합니다.
  2. OpenShift Container Platform 클러스터가 올바르게 설정되었는지 확인하려면 다음 명령을 사용하여 OpenShift Container Platform 웹 콘솔에 액세스합니다.

    kubectl -n openshift-console get route console
    Copy to Clipboard Toggle word wrap

    다음 예제 출력을 참조하십시오.

    console console-openshift-console.apps.new-coral.purple-chesterfield.com
    console   https   reencrypt/Redirect     None
    Copy to Clipboard Toggle word wrap
  3. 브라우저에서 URL을 열고 결과를 확인합니다. 콘솔 URL에 console-openshift-console.router.default.svc.cluster.local 이 표시되면 OpenShift Container Platform을 설치할 때 openshift_master_default_subdomain 값을 설정합니다. URL의 다음 예제를 참조하십시오. https://console-openshift-console.apps.new-coral.purple-chesterfield.com.

다중 클러스터 엔진 Operator 설치를 진행할 수 있습니다.

1.5.1.3. OperatorHub 웹 콘솔 인터페이스에서 설치

모범 사례: OpenShift Container Platform 탐색의 관리자 보기에서 OpenShift Container Platform과 함께 제공되는 OperatorHub 웹 콘솔 인터페이스를 설치합니다.

  1. Operator > OperatorHub 를 선택하여 사용 가능한 Operator 목록에 액세스하고 Kubernetes Operator의 다중 클러스터 엔진을 선택합니다.
  2. 설치를 클릭합니다.
  3. Operator 설치 페이지에서 설치 옵션을 선택합니다.

    • namespace:

      • 다중 클러스터 엔진 Operator 엔진은 자체 네임스페이스 또는 프로젝트에 설치해야 합니다.
      • 기본적으로 OperatorHub 콘솔 설치 프로세스는 multicluster-engine 이라는 네임스페이스를 생성합니다. 모범 사례: 사용 가능한 경우 multicluster-engine 네임스페이스를 계속 사용합니다.
      • 이미 multicluster-engine 이라는 네임스페이스가 있는 경우 다른 네임스페이스를 선택합니다.
    • 채널: 선택한 채널은 설치 중인 릴리스에 해당합니다. 채널을 선택하면 식별된 릴리스를 설치하고 해당 릴리스 내에서 향후 에라타가 업데이트되도록 설정합니다.
    • 승인 전략: 승인 전략은 서브스크립션한 채널 또는 릴리스에 업데이트를 적용하는 데 필요한 인적 상호 작용을 식별합니다.

      • 기본적으로 선택한 자동 을 선택하여 해당 릴리스 내의 업데이트가 자동으로 적용되도록 합니다.
      • 업데이트를 사용할 수 있을 때 알림을 받으려면 수동 을 선택합니다. 업데이트가 적용되는 시기에 대해 우려 사항이 있는 경우 이 방법을 사용하는 것이 좋습니다.

    참고: 다음 마이너 릴리스로 업그레이드하려면 OperatorHub 페이지로 돌아가서 최신 릴리스의 새 채널을 선택해야 합니다.

  4. 설치를 선택하여 변경 사항을 적용하고 Operator를 생성합니다.
  5. MultiClusterEngine 사용자 정의 리소스를 생성하려면 다음 프로세스를 참조하십시오.

    1. OpenShift Container Platform 콘솔 탐색에서 Installed Operators > multicluster engine for Kubernetes 를 선택합니다.
    2. MultiCluster Engine 탭을 선택합니다.
    3. Create MultiClusterEngine 을 선택합니다.
    4. YAML 파일에서 기본값을 업데이트합니다. 문서의 MultiClusterEngine 고급 구성 섹션의 옵션을 참조하십시오.

      • 다음 예제에서는 편집기에 복사할 수 있는 기본 템플릿을 보여줍니다.
      apiVersion: multicluster.openshift.io/v1
      kind: MultiClusterEngine
      metadata:
        name: multiclusterengine
      spec: {}
      Copy to Clipboard Toggle word wrap
  6. 생성 을 선택하여 사용자 지정 리소스를 초기화합니다. 다중 클러스터 엔진 Operator 엔진을 빌드하고 시작하는 데 최대 10분이 걸릴 수 있습니다.

    MultiClusterEngine 리소스가 생성되면 MultiCluster Engine 탭에서 리소스 상태가 Available (사용 가능)입니다.

1.5.1.4. OpenShift Container Platform CLI에서 설치

  1. Operator 요구 사항이 포함된 다중 클러스터 엔진 Operator 엔진 네임스페이스를 생성합니다. 다음 명령을 실행합니다. 여기서 namespace 는 Kubernetes Operator 네임스페이스의 다중 클러스터 엔진의 이름입니다. namespace 값은 OpenShift Container Platform 환경에서 Project 라고 할 수 있습니다.

    oc create namespace <namespace>
    Copy to Clipboard Toggle word wrap
  2. 프로젝트 네임스페이스를 생성한 네임스페이스로 전환합니다. 1단계에서 생성한 Kubernetes Operator 네임스페이스의 다중 클러스터 엔진 이름으로 namespace 를 바꿉니다.

    oc project <namespace>
    Copy to Clipboard Toggle word wrap
  3. YAML 파일을 생성하여 OperatorGroup 리소스를 구성합니다. 각 네임스페이스에는 하나의 operator 그룹만 있을 수 있습니다. default 를 operator 그룹의 이름으로 바꿉니다. namespace 를 프로젝트 네임스페이스의 이름으로 교체합니다. 다음 예제를 참조하십시오.

    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: <default>
      namespace: <namespace>
    spec:
      targetNamespaces:
      - <namespace>
    Copy to Clipboard Toggle word wrap
  4. 다음 명령을 실행하여 OperatorGroup 리소스를 생성합니다. operator-group 을 생성한 operator 그룹 YAML 파일의 이름으로 교체합니다.

    oc apply -f <path-to-file>/<operator-group>.yaml
    Copy to Clipboard Toggle word wrap
  5. YAML 파일을 생성하여 OpenShift Container Platform 서브스크립션을 구성합니다. 파일이 다음 예제와 유사하게 표시되고 < stable-2.x >가 사용 중인 지원되는 버전을 나타내도록 변경되었습니다.

    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: multicluster-engine
    spec:
      sourceNamespace: openshift-marketplace
      source: redhat-operators
      channel: stable-2.x
      installPlanApproval: Automatic
      name: multicluster-engine
    Copy to Clipboard Toggle word wrap

    참고: 인프라 노드를 구성하려면 다중 클러스터 엔진 Operator를 위한 인프라 노드 구성 을 참조하십시오.

=

+ . 다음 명령을 실행하여 OpenShift Container Platform 서브스크립션을 생성합니다. 서브스크립션 을 생성한 서브스크립션 파일의 이름으로 교체합니다.

+

oc apply -f <path-to-file>/<subscription>.yaml
Copy to Clipboard Toggle word wrap
  1. YAML 파일을 생성하여 MultiClusterEngine 사용자 정의 리소스를 구성합니다. 기본 템플릿은 다음 예와 유사해야 합니다.

    apiVersion: multicluster.openshift.io/v1
    kind: MultiClusterEngine
    metadata:
      name: multiclusterengine
    spec: {}
    Copy to Clipboard Toggle word wrap

    참고: 인프라 노드에 다중 클러스터 엔진 Operator를 설치하는 경우 MultiClusterEngine 사용자 정의 리소스 추가 구성 섹션을 참조하십시오.

  2. 다음 명령을 실행하여 MultiClusterEngine 사용자 정의 리소스를 생성합니다. custom-resource 를 사용자 정의 리소스 파일의 이름으로 교체합니다.

    oc apply -f <path-to-file>/<custom-resource>.yaml
    Copy to Clipboard Toggle word wrap

    다음 오류와 함께 이 단계가 실패하면 리소스가 계속 생성되고 적용됩니다. 리소스가 생성될 때 몇 분 후에 명령을 다시 실행합니다.

    error: unable to recognize "./mce.yaml": no matches for kind "MultiClusterEngine" in version "operator.multicluster-engine.io/v1"
    Copy to Clipboard Toggle word wrap
  3. 다음 명령을 실행하여 사용자 정의 리소스를 가져옵니다. 다음 명령을 실행한 후 MultiClusterEngine 사용자 정의 리소스 상태가 Available 으로 Available로 표시되는 데 최대 10분이 걸릴 수 있습니다 .

    oc get mce -o=jsonpath='{.items[0].status.phase}'
    Copy to Clipboard Toggle word wrap

다중 클러스터 엔진 Operator를 다시 설치하고 Pod가 시작되지 않는 경우 이 문제를 해결하기 위한 단계의 재생성 문제 해결을 참조하십시오.

참고:

  • ClusterRoleBinding 이 있는 ServiceAccount 는 다중 클러스터 엔진 Operator 및 다중 클러스터 엔진 Operator를 설치하는 네임스페이스에 대한 액세스 권한이 있는 모든 사용자 인증 정보에 자동으로 클러스터 관리자 권한을 부여합니다.

이제 승인된 관리 구성 요소를 실행하기 위해 인프라 노드를 포함하도록 OpenShift Container Platform 클러스터를 구성할 수 있습니다. 인프라 노드에서 구성 요소를 실행하면 해당 관리 구성 요소를 실행하는 노드에 OpenShift Container Platform 서브스크립션 할당량이 할당되지 않습니다. 해당 절차 를 위해 다중 클러스터 엔진 Operator의 인프라 노드 구성 을 참조하십시오.

1.5.2. 다중 클러스터 엔진 Operator를 위한 인프라 노드 구성

승인된 다중 클러스터 엔진 Operator 관리 구성 요소를 실행하는 인프라 노드를 포함하도록 OpenShift Container Platform 클러스터를 구성합니다. 인프라 노드에서 구성 요소를 실행하면 다중 클러스터 엔진 Operator 관리 구성 요소를 실행하는 노드에 OpenShift Container Platform 서브스크립션 할당량이 할당되지 않습니다.

OpenShift Container Platform 클러스터에 인프라 노드를 추가한 후 OpenShift Container Platform CLI에서 설치 지침을 따르고 Operator Lifecycle Manager 서브스크립션 및 MultiClusterEngine 사용자 정의 리소스에 다음 구성을 추가합니다.

1.5.2.1. OpenShift Container Platform 클러스터에 인프라 노드 구성

OpenShift Container Platform 설명서에서 인프라 머신 세트 생성에 설명된 절차를 따르십시오. 인프라 노드는 관리되지 않은 워크로드가 해당 워크로드가 실행되지 않도록 Kubernetes 테인트라벨 을 사용하여 구성됩니다.

다중 클러스터 엔진 Operator에서 제공하는 인프라 노드 활성화와의 호환성을 위해 인프라 노드에 다음과 같은 테인트라벨이 적용되었는지 확인합니다.

metadata:
  labels:
    node-role.kubernetes.io/infra: ""
spec:
  taints:
  - effect: NoSchedule
    key: node-role.kubernetes.io/infra
Copy to Clipboard Toggle word wrap

1.5.2.2. Operator Lifecycle Manager 서브스크립션 구성

Operator Lifecycle Manager 서브스크립션을 구성합니다.

  1. Operator Lifecycle Manager 서브스크립션을 적용하기 전에 다음 추가 구성을 추가합니다.

    spec:
      config:
        nodeSelector:
          node-role.kubernetes.io/infra: ""
        tolerations:
        - key: node-role.kubernetes.io/infra
          effect: NoSchedule
          operator: Exists
    Copy to Clipboard Toggle word wrap
  2. 다음 노드 선택기 및 허용 오차를 포함하도록 모든 애드온을 업데이트합니다. klusterlet 애드온 구성 지침을 사용해야 합니다.

        nodeSelector:
          node-role.kubernetes.io/infra: ""
        tolerations:
        - key: node-role.kubernetes.io/infra
          effect: NoSchedule
          operator: Exists
    Copy to Clipboard Toggle word wrap
  3. Red Hat OpenShift Data Foundation을 스토리지 프로비저너로 사용한 경우 Container Storage Interface Pod가 인프라 노드에서 실행될 수 있는지 확인합니다. Red Hat OpenShift Data Foundation 설명서에서 CSI(Container Storage Interface) 구성 요소 배치 관리에 대해 자세히 알아보십시오.

1.5.2.3. MultiClusterEngine 사용자 정의 리소스 추가 구성

MultiClusterEngine 사용자 정의 리소스를 적용하기 전에 다음 추가 구성을 추가합니다.

spec:
  nodeSelector:
    node-role.kubernetes.io/infra: ""
Copy to Clipboard Toggle word wrap

1.5.3. 연결이 끊긴 네트워크에 설치

인터넷에 연결되지 않은 Red Hat OpenShift Container Platform 클러스터에 다중 클러스터 엔진 Operator를 설치해야 할 수 있습니다. 연결이 끊긴 엔진에 설치하려면 연결된 설치와 동일한 단계가 필요합니다.

설치 중에 네트워크에서 직접 액세스하는 대신 설치 중에 패키지 사본을 다운로드하여 설치 중에 액세스해야 합니다.

1.5.3.1. 사전 요구 사항

다중 클러스터 엔진 Operator를 설치하기 전에 다음 요구 사항을 충족해야 합니다.

  • 지원되는 OpenShift Container Platform 버전은 환경에 배포해야 하며 CLI(명령줄 인터페이스)로 로그인해야 합니다.
  • catalog.redhat.com 에 액세스해야 합니다.

    참고: 베어 메탈 클러스터를 관리하려면 지원되는 OpenShift Container Platform 버전이 필요합니다.

    OpenShift Container Platform 설치를 참조하십시오.

  • Red Hat OpenShift Container Platform 권한에서 네임스페이스를 생성할 수 있도록 허용해야 합니다.
  • Operator에 대한 종속성을 다운로드하려면 인터넷 연결이 있는 워크스테이션이 있어야 합니다.

1.5.3.2. OpenShift Container Platform 설치 확인

  • 레지스트리 및 스토리지 서비스를 포함하여 지원되는 OpenShift Container Platform 버전이 클러스터에 설치되어 작동해야 합니다. OpenShift Container Platform에 대한 자세한 내용은 OpenShift Container Platform 설명서를 참조하십시오.
  • 연결된 경우 다음 명령을 사용하여 OpenShift Container Platform 웹 콘솔에 액세스하여 확인합니다.

    oc -n openshift-console get route console
    Copy to Clipboard Toggle word wrap

    다음 예제 출력을 참조하십시오.

    console console-openshift-console.apps.new-name.purple-name.com
    console   https   reencrypt/Redirect     None
    Copy to Clipboard Toggle word wrap

    이 예제의 콘솔 URL은 https:// console-openshift-console.apps.new-coral.purple-chesterfield.com 입니다. 브라우저에서 URL을 열고 결과를 확인합니다.

    콘솔 URL에 console-openshift-console.router.default.svc.cluster.local 이 표시되면 OpenShift Container Platform을 설치할 때 openshift_master_default_subdomain 값을 설정합니다.

1.5.3.3. 연결이 끊긴 환경에 설치

중요: 연결이 끊긴 환경에서 Operator를 설치하려면 필요한 이미지를 미러링 레지스트리에 다운로드해야 합니다. 다운로드하지 않으면 배포 중에 ImagePullBackOff 오류가 표시될 수 있습니다.

다음 단계에 따라 연결이 끊긴 환경에 다중 클러스터 엔진 Operator를 설치합니다.

  1. 미러 레지스트리를 생성합니다. 미러 레지스트리가 아직 없는 경우 Red Hat OpenShift Container Platform 설명서의 연결이 끊긴 환경 미러링 주제의 절차를 완료하여 하나의 레지스트리를 생성합니다.

    미러 레지스트리가 이미 있는 경우 기존 레지스트리를 구성하고 사용할 수 있습니다.

  2. 참고: 베어 메탈의 경우 install-config.yaml 파일에서 연결이 끊긴 레지스트리에 대한 인증서 정보를 제공해야 합니다. 보호된 연결이 끊긴 레지스트리에서 이미지에 액세스하려면 다중 클러스터 엔진 운영자가 레지스트리에 액세스할 수 있도록 인증서 정보를 제공해야 합니다.

    1. 레지스트리에서 인증서 정보를 복사합니다.
    2. 편집기에서 install-config.yaml 파일을 엽니다.
    3. additionalTrustBundle: | 의 항목을 찾습니다.
    4. additionalTrustBundle 줄 뒤에 인증서 정보를 추가합니다. 결과 콘텐츠는 다음 예와 유사해야 합니다.

      additionalTrustBundle: |
        -----BEGIN CERTIFICATE-----
        certificate_content
        -----END CERTIFICATE-----
      sshKey: >-
      Copy to Clipboard Toggle word wrap
  3. 선택 사항: 설치 후 호스트에 액세스할 수 있도록 하나 이상의 SSH 공개 키를 지정할 수 있습니다. 다음 예제를 참조하십시오.

    sshKey: |
      ssh-rsa <public-key-1>
      ssh-rsa <public-key-2>
      ssh-rsa <public-key-3>
    Copy to Clipboard Toggle word wrap
  4. 중요: 다음 Governance 정책이 필요한 경우 연결이 끊긴 이미지 레지스트리에 대한 추가 미러가 필요합니다.

    • Container Security Operator 정책: registry.redhat.io/quay 소스의 이미지를 찾습니다.
    • Compliance Operator 정책: registry.redhat.io/compliance 소스의 이미지를 찾습니다.
    • Gatekeeper Operator 정책: registry.redhat.io/gatekeeper 소스에 이미지를 찾습니다.

      세 가지 연산자 모두에 대한 미러 목록의 다음 예제를 참조하십시오.

        - mirrors:
          - <your_registry>/rhacm2
          source: registry.redhat.io/rhacm2
        - mirrors:
          - <your_registry>/quay
          source: registry.redhat.io/quay
        - mirrors:
          - <your_registry>/compliance
          source: registry.redhat.io/compliance
    Copy to Clipboard Toggle word wrap
  5. install-config.yaml 파일을 저장합니다.
  6. mce-policy.yaml 이라는 이름으로 ImageContentSourcePolicy 가 포함된 YAML 파일을 생성합니다. 참고: 실행 중인 클러스터에서 이 값을 수정하면 모든 노드가 롤링 재시작됩니다.

    apiVersion: operator.openshift.io/v1alpha1
    kind: ImageContentSourcePolicy
    metadata:
      name: mce-repo
    spec:
      repositoryDigestMirrors:
      - mirrors:
        - mirror.registry.com:5000/multicluster-engine
        source: registry.redhat.io/multicluster-engine
    Copy to Clipboard Toggle word wrap
  7. 다음 명령을 입력하여 ImageContentSourcePolicy 파일을 적용합니다.

    oc apply -f mce-policy.yaml
    Copy to Clipboard Toggle word wrap
  8. 연결이 끊긴 Operator Lifecycle Manager Red Hat Operator 및 Community Operator를 활성화합니다.

    멀티 클러스터 엔진 Operator는 Operator Lifecycle Manager Red Hat Operator 카탈로그에 포함되어 있습니다.

  9. Red Hat Operator 카탈로그에 대해 연결이 끊긴 Operator Lifecycle Manager를 구성합니다. Red Hat OpenShift Container Platform 설명서의 제한된 네트워크에서 Operator Lifecycle Manager 사용 주제의 단계를 따르십시오.
  10. Operator Lifecycle Manager 카탈로그에서 Kubernetes용 다중 클러스터 엔진 Operator를 계속 설치합니다.

필요한 단계는 온라인에 연결된 동안 설치를 참조하십시오.

1.5.4. 정책을 사용하여 연결이 끊긴 클러스터 업그레이드

MultiClusterHub Operator를 사용하여 허브 클러스터 구성 요소를 관리, 업그레이드 및 설치하는 Red Hat Advanced Cluster Management for Kubernetes Hub 클러스터가 있는 경우 Red Hat Advanced Cluster Management 정책과 함께 OpenShift Update Service를 사용하여 연결이 끊긴 환경에서 여러 클러스터를 업그레이드할 수 있습니다.

OpenShift Update Service는 관리 클러스터의 사용 가능한 버전을 모니터링하고 연결이 끊긴 환경에서 업그레이드할 수 있도록 하는 별도의 Operator 및 피연산자입니다. OpenShift Update Service는 다음 작업을 수행할 수 있습니다.

외부 레지스트리 CA 인증서에 대한 자세한 내용은 OpenShift Container Platform 설명서의 이미지 레지스트리 액세스에 대한 추가 신뢰 저장소 구성 을 참조하십시오.

1.5.4.1. 사전 요구 사항

OpenShift Update Service를 사용하여 연결이 끊긴 클러스터를 업그레이드하려면 다음 사전 요구 사항이 있어야 합니다.

  • Red Hat Advanced Cluster Management를 설치해야 합니다. Red Hat Advanced Cluster Management 설치 및 업그레이드 설명서를 참조하십시오.
  • 제한된 OLM이 구성된 지원되는 Red Hat OpenShift Container Platform 버전에서 실행 중인 허브 클러스터가 필요합니다. 제한된 OLM 을 구성하는 방법에 대한 자세한 내용은 제한된 네트워크에서 Operator Lifecycle Manager 사용을 참조하십시오. 제한된 OLM을 구성할 때 카탈로그 소스 이미지를 기록해 두십시오.
  • hub 클러스터에서 관리하는 OpenShift Container Platform 클러스터가 필요합니다.
  • 클러스터 이미지를 미러링할 수 있는 로컬 저장소에 대한 액세스 인증 정보가 필요합니다. 자세한 내용은 연결이 끊긴 환경에서 미러링 을 참조하십시오.

    참고: 업그레이드한 클러스터의 현재 버전의 이미지를 미러링된 이미지 중 하나로 계속 사용할 수 있어야 합니다. 업그레이드에 실패하면 클러스터에서 업그레이드하려고 할 때 클러스터 버전으로 되돌아갑니다.

1.5.4.2. 연결이 끊긴 미러 레지스트리 준비

업그레이드할 이미지와 로컬 미러 레지스트리로 업그레이드할 현재 이미지를 모두 미러링해야 합니다.

이미지를 미러링하려면 다음 단계를 완료합니다.

  1. 다음 예제와 유사한 콘텐츠로 스크립트 파일을 생성합니다. & lt;pull-secret& gt;을 OpenShift Container Platform 풀 시크릿의 경로로 바꿉니다.

    UPSTREAM_REGISTRY=quay.io
    PRODUCT_REPO=openshift-release-dev
    RELEASE_NAME=ocp-release
    OCP_RELEASE=4.17.2-x86_64
    LOCAL_REGISTRY=$(hostname):5000
    LOCAL_SECRET_JSON=<pull-secret>
    
    oc adm -a ${LOCAL_SECRET_JSON} release mirror \
    --from=${UPSTREAM_REGISTRY}/${PRODUCT_REPO}/${RELEASE_NAME}:${OCP_RELEASE} \
    --to=${LOCAL_REGISTRY}/ocp4 \
    --to-release-image=${LOCAL_REGISTRY}/ocp4/release:${OCP_RELEASE}
    Copy to Clipboard Toggle word wrap
  2. 스크립트를 실행하여 이미지를 미러링하고, 설정을 구성하고, 릴리스 이미지와 릴리스 콘텐츠를 분리합니다.

1.5.4.3. OpenShift Update Service용 Operator 배포

OpenShift Container Platform 환경에서 OpenShift Update Service용 Operator를 배포하려면 다음 단계를 완료하십시오.

  1. 허브 클러스터에서 OpenShift Container Platform Operator 허브에 액세스합니다.
  2. OpenShift Update Service Operator 를 선택하여 Operator를 배포하고 필요한 경우 기본값을 업데이트합니다. Operator 배포는 openshift-update-service 라는 새 프로젝트를 생성합니다.
  3. Operator 설치가 완료될 때까지 기다립니다.

oc get pods 명령을 실행하여 설치 상태를 확인할 수 있습니다. Operator가 running 상태인지 확인합니다.

1.5.4.4. 그래프 데이터 init 컨테이너 빌드

OpenShift Update Service는 그래프 데이터 정보를 사용하여 사용 가능한 업그레이드를 찾습니다. 연결된 환경에서 OpenShift Update Service는 update-service 그래프 데이터 GitHub 리포지토리에서 직접 업그레이드할 수 있는 그래프 데이터 정보를 가져옵니다.

연결이 끊긴 환경에서는 init 컨테이너 를 사용하여 로컬 리포지토리에서 그래프 데이터를 사용할 수 있도록 설정해야 합니다.

그래프 데이터 init 컨테이너 를 생성하려면 다음 단계를 완료합니다.

  1. 다음 명령을 실행하여 그래프 데이터 Git 리포지토리를 복제합니다.

    git clone https://github.com/openshift/cincinnati-graph-data
    Copy to Clipboard Toggle word wrap
  2. 그래프 데이터 init 에 대한 정보가 포함된 파일을 생성합니다. cincinnati-operator GitHub 리포지토리에서 샘플 Dockerfile 을 찾을 수 있습니다.

    • FROM 값은 OpenShift Update Service가 이미지를 찾는 외부 레지스트리입니다.
    • RUN 명령은 디렉터리를 생성하고 업그레이드 파일을 패키징합니다.
    • CMD 명령은 패키지 파일을 로컬 리포지토리에 복사하고 업그레이드를 위해 파일을 추출합니다.
  3. 다음 명령을 실행하여 그래프 데이터 init 컨테이너 를 빌드합니다.

    podman build -f <docker-path> -t <graph-path>:latest
    Copy to Clipboard Toggle word wrap

    & lt;docker-path >를 이전 단계에서 생성한 파일의 경로로 바꿉니다.

    로컬 그래프 데이터 init 컨테이너의 경로로 바꿉니다 .

  4. 다음 명령을 실행하여 그래프 데이터 init 컨테이너 를 푸시합니다.

    podman push <graph-path>:latest --authfile=<pull-secret>.json
    Copy to Clipboard Toggle word wrap

    로컬 그래프 데이터 init 컨테이너의 경로로 바꿉니다 .

    & lt;pull-secret& gt;을 풀 시크릿 파일의 경로로 바꿉니다.

선택 사항: podman 을 설치하지 않은 경우 3단계와 4단계에서 podmandocker 로 교체합니다.

1.5.4.5. 미러링된 레지스트리의 인증서 구성

미러링된 OpenShift Container Platform 릴리스 이미지를 저장하기 위해 보안 외부 컨테이너 레지스트리를 사용하는 경우 OpenShift Update Service는 업그레이드 그래프를 빌드하기 위해 이 레지스트리에 액세스해야 합니다.

OpenShift Update Service Pod에서 작동하도록 CA 인증서를 구성하려면 다음 단계를 완료합니다.

  1. image.config.openshift.io 에 있는 OpenShift Container Platform 외부 레지스트리 API를 찾습니다. 외부 레지스트리 CA 인증서가 저장되는 위치입니다. 자세한 내용은 추가 리소스 섹션에서 이미지 레지스트리 액세스에 대한 추가 신뢰 저장소 구성 을 참조하십시오.
  2. openshift-config 네임스페이스에 ConfigMap을 생성하고 updateservice-registry 섹션에 CA 인증서를 추가합니다. 다음 예제를 참조하십시오.

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: trusted-ca
    data:
      updateservice-registry: |
        -----BEGIN CERTIFICATE-----
        ...
        -----END CERTIFICATE-----
    Copy to Clipboard Toggle word wrap
  3. image.config.openshift.io API에서 클러스터 리소스를 편집하여 additionalTrustedCA 필드를 생성한 ConfigMap의 이름으로 설정합니다. 다음 명령을 실행하고 < trusted_ca&gt;를 새 ConfigMap의 경로로 바꿉니다.

    oc patch image.config.openshift.io cluster -p '{"spec":{"additionalTrustedCA":{"name":"<trusted_ca>"}}}' --type merge
    Copy to Clipboard Toggle word wrap

OpenShift Update Service Operator는 openshift-config 네임스페이스에서 생성한 image.config.openshift.io API 및 openshift-config 네임스페이스에서 생성한 ConfigMap을 모니터링한 다음 CA 인증서가 변경된 경우 배포를 다시 시작합니다.

1.5.4.6. OpenShift Update Service 인스턴스 배포

허브 클러스터에 OpenShift Update Service 인스턴스 배포를 완료하면 클러스터 업그레이드의 이미지를 미러링하고 연결이 끊긴 관리 클러스터에서 사용할 수 있는 인스턴스가 있습니다.

인스턴스를 배포하려면 다음 단계를 완료합니다.

  1. Operator의 기본 네임스페이스를 사용하지 않으려면 콘솔에서 Administration > Namespaces 로 이동하여 변경합니다.
  2. OpenShift Container Platform 콘솔의 설치된 Operator 섹션에서 OpenShift Update Service Operator 를 선택합니다.
  3. 메뉴에서 Create Instance 를 선택합니다.
  4. OpenShift Update Service 인스턴스에서 콘텐츠를 붙여넣습니다. YAML 인스턴스는 다음 매니페스트와 유사할 수 있습니다.

    apiVersion: update-service.openshift.io/v1beta2
    kind: update-service
    metadata:
      name: openshift-cincinnati-instance
      namespace: openshift-update-service
    spec:
      registry: <registry-host-name>:<port> 
    1
    
      replicas: 1
      repository: ${LOCAL_REGISTRY}/ocp4/release
      graphDataImage: '<host-name>:<port>/cincinnati-graph-data-container' 
    2
    Copy to Clipboard Toggle word wrap
    1
    이미지의 로컬 연결이 끊긴 레지스트리의 경로로 바꿉니다.
    2
    그래프 데이터 init 컨테이너의 경로로 바꿉니다. 그래프 데이터 init 컨테이너를 푸시하기 위해 podman push 명령을 실행할 때 사용한 값과 동일합니다.
  5. 만들기 를 선택하여 인스턴스를 만듭니다.
  6. hub 클러스터 CLI에서 oc get pods 명령을 입력하여 인스턴스 생성 상태를 확인합니다.

이 작업을 수행하는 데 몇 분 정도 걸릴 수 있습니다. 명령 결과에 인스턴스 및 Operator가 실행 중임을 표시되면 프로세스가 완료됩니다.

1.5.4.7. 선택 사항: 기본 레지스트리를 덮어쓰도록 정책 배포

다음 단계는 릴리스를 미러링된 레지스트리에 미러링한 경우에만 적용됩니다.

더 이상 사용되지 않음: PlacementRule

OpenShift Container Platform에는 업그레이드 패키지를 찾는 위치를 지정하는 기본 이미지 레지스트리 값이 있습니다. 연결이 끊긴 환경에서는 해당 값을 릴리스 이미지를 미러링한 로컬 이미지 레지스트리의 경로로 교체하는 정책을 생성할 수 있습니다.

정책을 생성하려면 다음 단계를 완료합니다.

  1. hub 클러스터의 OpenShift Container Platform 환경에 로그인합니다.
  2. 콘솔에서 Governance > Create policy 를 선택합니다.
  3. YAML 스위치를 On 으로 설정하여 정책의 YAML 버전을 확인합니다.
  4. YAML 코드의 모든 콘텐츠를 삭제합니다.
  5. 다음 YAML 콘텐츠를 창에 붙여넣어 사용자 정의 정책을 생성합니다.

    apiVersion: policy.open-cluster-management.io/v1
    kind: Policy
    metadata:
      name: policy-mirror
      namespace: default
    spec:
      disabled: false
      remediationAction: enforce
      policy-templates:
        - objectDefinition:
            apiVersion: policy.open-cluster-management.io/v1
            kind: ConfigurationPolicy
            metadata:
              name: policy-image-content-source-policy
            spec:
              object-templates:
                - complianceType: musthave
                  objectDefinition:
                    apiVersion: operator.openshift.io/v1alpha1
                    kind: ImageContentSourcePolicy
                    metadata:
                      name: <your-local-mirror-name> 
    1
    
                    spec:
                      repositoryDigestMirrors:
                        - mirrors:
                            - <your-registry> 
    2
    
                          source: registry.redhat.io
    ---
    apiVersion: policy.open-cluster-management.io/v1
    kind: PlacementBinding
    metadata:
      name: binding-policy-mirror
      namespace: default
    placementRef:
      name: placement-policy-mirror
      kind: PlacementRule
      apiGroup: apps.open-cluster-management.io
    subjects:
    - name: policy-mirror
      kind: Policy
      apiGroup: policy.open-cluster-management.io
    ---
    apiVersion: apps.open-cluster-management.io/v1
    kind: PlacementRule
    metadata:
      name: placement-policy-mirror
      namespace: default
    spec:
      clusterSelector:
        matchExpressions:
          []  
    3
    Copy to Clipboard Toggle word wrap
    1
    로컬 미러 이름으로 바꿉니다.
    2
    을 로컬 미러 저장소의 경로로 바꿉니다. oc adm release mirror 명령을 실행하여 로컬 미러의 경로를 찾을 수 있습니다.
    3
    지정하지 않는 경우 모든 클러스터를 선택합니다.
  6. 지원되는 경우 Enforce 를 선택합니다.
  7. 만들기 를 선택하여 정책을 생성합니다.

1.5.4.8. 연결이 끊긴 카탈로그 소스 배포

Catalogsource 정책을 관리 클러스터로 내보내 연결된 위치에서 연결이 끊긴 로컬 레지스트리로 기본 위치를 변경할 수 있습니다.

기본 위치를 변경하려면 다음 단계를 완료합니다.

  1. 콘솔 메뉴에서 Governance > Create policy 를 선택합니다.
  2. YAML 스위치를 On 으로 설정하여 정책의 YAML 버전을 확인합니다.
  3. YAML 코드의 모든 콘텐츠를 삭제합니다.
  4. 다음 YAML 콘텐츠를 창에 붙여넣어 사용자 정의 정책을 생성합니다.

    apiVersion: policy.open-cluster-management.io/v1
    kind: Policy
    metadata:
      name: policy-catalog
      namespace: default
    spec:
      disabled: false
      remediationAction: enforce
      policy-templates:
        - objectDefinition:
            apiVersion: policy.open-cluster-management.io/v1
            kind: ConfigurationPolicy
            metadata:
              name: policy-catalog
            spec:
              object-templates:
                - complianceType: musthave
                  objectDefinition:
                    apiVersion: config.openshift.io/v1
                    kind: OperatorHub
                    metadata:
                      name: cluster
                    spec:
                      disableAllDefaultSources: true
                - complianceType: musthave
                  objectDefinition:
                    apiVersion: operators.coreos.com/v1alpha1
                    kind: CatalogSource
                    metadata:
                      name: my-operator-catalog
                      namespace: openshift-marketplace
                    spec:
                      sourceType: grpc
                      image: '<registry_host_name>:<port>/olm/redhat-operators:v1' 
    1
    
                      displayName: My Operator Catalog
                      publisher: grpc
    ---
    apiVersion: policy.open-cluster-management.io/v1
    kind: PlacementBinding
    metadata:
      name: binding-policy-catalog
      namespace: default
    placementRef:
      name: placement-policy-catalog
      kind: PlacementRule
      apiGroup: apps.open-cluster-management.io
    subjects:
    - name: policy-catalog
      kind: Policy
      apiGroup: policy.open-cluster-management.io
    ---
    apiVersion: apps.open-cluster-management.io/v1
    kind: PlacementRule
    metadata:
      name: placement-policy-catalog
      namespace: default
    spec:
      clusterSelector:
        matchExpressions:
          []  
    2
    Copy to Clipboard Toggle word wrap
    1
    로컬 제한된 카탈로그 소스 이미지의 경로로 바꿉니다.
    2
    지정하지 않는 경우 모든 클러스터를 선택합니다.
  5. 지원되는 경우 Enforce 를 선택합니다.
  6. 만들기 를 선택하여 정책을 생성합니다.

1.5.4.9. 관리 클러스터 매개변수를 변경하는 정책 배포

ClusterVersion 정책을 관리 클러스터로 푸시하여 업그레이드를 검색하는 기본 위치를 변경할 수 있습니다.

다음 단계를 완료합니다.

  1. 관리형 클러스터에서 다음 명령을 실행하여 ClusterVersion 업스트림 매개변수가 현재 기본 공용 OpenShift Update Service 피연산자인지 확인합니다.

    oc get clusterversion -o yaml
    Copy to Clipboard Toggle word wrap
  2. 허브 클러스터에서 다음 명령을 실행하여 OpenShift Update Service 피연산자의 경로 URL을 식별합니다.

    oc get routes
    Copy to Clipboard Toggle word wrap

    나중에 결과를 확인합니다.

  3. 허브 클러스터 콘솔 메뉴에서 Governance > Create a policy 를 선택합니다.
  4. YAML 스위치를 On 으로 설정하여 정책의 YAML 버전을 확인합니다.
  5. YAML 코드의 모든 콘텐츠를 삭제합니다.
  6. 다음 YAML 콘텐츠를 창에 붙여넣어 사용자 정의 정책을 생성합니다.

    apiVersion: policy.open-cluster-management.io/v1
    kind: Policy
    metadata:
      name: policy-cluster-version
      namespace: default
      annotations:
        policy.open-cluster-management.io/standards: null
        policy.open-cluster-management.io/categories: null
        policy.open-cluster-management.io/controls: null
    spec:
      disabled: false
      remediationAction: enforce
      policy-templates:
        - objectDefinition:
            apiVersion: policy.open-cluster-management.io/v1
            kind: ConfigurationPolicy
            metadata:
              name: policy-cluster-version
            spec:
              object-templates:
                - complianceType: musthave
                  objectDefinition:
                    apiVersion: config.openshift.io/v1
                    kind: ClusterVersion
                    metadata:
                      name: version
                    spec:
                      channel: stable-4.4
                      upstream: >-
                        https://example-cincinnati-policy-engine-uri/api/upgrades_info/v1/graph 
    1
    
    
    ---
    apiVersion: policy.open-cluster-management.io/v1
    kind: PlacementBinding
    metadata:
      name: binding-policy-cluster-version
      namespace: default
    placementRef:
      name: placement-policy-cluster-version
      kind: PlacementRule
      apiGroup: apps.open-cluster-management.io
    subjects:
    - name: policy-cluster-version
      kind: Policy
      apiGroup: policy.open-cluster-management.io
    ---
    apiVersion: apps.open-cluster-management.io/v1
    kind: PlacementRule
    metadata:
      name: placement-policy-cluster-version
      namespace: default
    spec:
      clusterSelector:
        matchExpressions:
          [] 
    2
    Copy to Clipboard Toggle word wrap
    1
    hub 클러스터 OpenShift Update Service 피연산자의 경로로 바꿉니다. 지정하지 않는 경우 모든 클러스터를 선택합니다.

    다음 단계를 완료하여 피연산자의 경로를 확인할 수 있습니다.

    1. hub 클러스터에서 oc get get routes -A 명령을 실행합니다.
    2. update-service 경로를 찾습니다.

      피연산자의 경로는 HOST/PORT 필드의 값입니다.

  7. 지원되는 경우 Enforce 를 선택합니다.
  8. 만들기 를 선택하여 정책을 생성합니다.
  9. 관리 클러스터 CLI에서 다음 명령을 실행하여 ClusterVersion 의 upstream 매개변수가 로컬 허브 클러스터 OpenShift Update Service URL로 업데이트되었는지 확인합니다.

    oc get clusterversion -o yaml
    Copy to Clipboard Toggle word wrap
  10. 결과가 다음 콘텐츠와 유사한지 확인합니다.

    apiVersion: v1
    items:
    - apiVersion: config.openshift.io/v1
      kind: ClusterVersion
    [..]
      spec:
        channel: stable-4.4
        upstream: https://<hub-cincinnati-uri>/api/upgrades_info/v1/graph
    Copy to Clipboard Toggle word wrap

1.5.4.10. 사용 가능한 업그레이드 보기

다음 단계를 완료하여 관리 클러스터에 사용 가능한 업그레이드 목록을 볼 수 있습니다.

  1. 콘솔에서 Infrastructure > Clusters 를 선택합니다.
  2. Ready 상태에 있는 클러스터를 선택합니다.
  3. 작업 메뉴에서 클러스터 업그레이드 를 선택합니다.
  4. 선택적 업그레이드 경로를 사용할 수 있는지 확인합니다.

참고: 현재 버전이 로컬 이미지 저장소에 미러링되지 않은 경우 사용 가능한 업그레이드 버전이 표시되지 않습니다.

1.5.4.11. 채널 선택

Red Hat Advanced Cluster Management 콘솔을 사용하여 OpenShift Container Platform에서 클러스터 업그레이드 채널을 선택할 수 있습니다. 이러한 버전은 미러 레지스트리에서 사용할 수 있어야 합니다.

채널 선택 단계를 완료하여 업그레이드 채널을 지정합니다.

1.5.4.12. 클러스터 업그레이드

연결이 끊긴 레지스트리를 구성한 후 Red Hat Advanced Cluster Management 및 OpenShift Update Service는 연결이 끊긴 레지스트리를 사용하여 업그레이드를 사용할 수 있는지 확인합니다.

사용 가능한 업그레이드가 표시되지 않는 경우 클러스터의 현재 수준의 릴리스 이미지와 로컬 저장소에 미러링된 하나 이상의 이후 수준이 있는지 확인합니다.

현재 클러스터 버전의 릴리스 이미지를 사용할 수 없는 경우 업그레이드를 사용할 수 없습니다.

업그레이드하려면 다음 단계를 완료합니다.

  1. 콘솔에서 Infrastructure > Clusters 를 선택합니다.
  2. 사용 가능한 업그레이드가 있는지 선택할 클러스터를 찾습니다.
  3. 업그레이드를 사용할 수 있는 경우 클러스터 의 배포 버전 열에 사용 가능한 업그레이드가 표시됩니다.
  4. 클러스터의 옵션 메뉴를 선택하고 클러스터 업그레이드 를 선택합니다.
  5. 업그레이드 대상 버전을 선택하고 업그레이드를 선택합니다.

클러스터 업그레이드에 실패하면 Operator는 일반적으로 업그레이드를 몇 번 재시도하고 중지한 후 실패한 구성 요소의 상태를 보고합니다. 경우에 따라 업그레이드 프로세스가 프로세스를 완료하려는 시도를 계속 순환합니다. 업그레이드 실패 후 클러스터를 이전 버전으로 롤백하는 것은 지원되지 않습니다. 클러스터 업그레이드에 실패하는 경우 Red Hat 지원에 문의하십시오.

1.5.4.12.1. 추가 리소스

외부 레지스트리 CA 인증서에 대한 자세한 내용은 OpenShift Container Platform 설명서의 이미지 레지스트리 액세스에 대한 추가 신뢰 저장소 구성 을 참조하십시오.

1.5.5. 고급 구성

다중 클러스터 엔진 Operator는 필요한 모든 구성 요소를 배포하는 Operator를 사용하여 설치됩니다. 멀티 클러스터 엔진 Operator는 설치 중 또는 설치 후 추가로 구성할 수 있습니다. 고급 구성 옵션에 대해 자세히 알아보십시오.

1.5.5.1. 배포된 구성 요소

MultiClusterEngine 사용자 정의 리소스에 다음 속성 중 하나 이상을 추가합니다.

Expand
표 1.6. 배포된 구성 요소의 표 목록

이름

설명

활성화됨

assisted-service

최소한의 인프라 사전 요구 사항 및 포괄적인 사전 요구 사항으로 OpenShift Container Platform 설치

True

cluster-api

관리형 클러스터 내에서 클러스터 API 라이프사이클을 처리하는 기능 제공

False

cluster-api-provider-aws

AWS의 클러스터 생성, 구성 및 관리를 위한 Kubernetes 스타일 API 제공

False

cluster-api-provider-openshift-assisted-preview

지원 설치 관리자를 사용하여 클러스터 생성, 구성 및 관리를 위한 Kubernetes 스타일 API 제공

False

cluster-api-provider-metal3-preview

베어 메탈 인프라에서 클러스터 생성, 구성 및 관리를 위한 Kubernetes 스타일 API 제공

False

cluster-lifecycle

OpenShift Container Platform 및 Kubernetes 허브 클러스터를 위한 클러스터 관리 기능 제공

True

cluster-manager

클러스터 환경 내에서 다양한 클러스터 관련 작업 관리

True

cluster-proxy-addon

역방향 프록시 서버를 사용하여 허브 및 관리 클러스터에 apiserver-network-proxy 설치를 자동화합니다.

True

console-mce

다중 클러스터 엔진 Operator 콘솔 플러그인 활성화

True

discovery

OpenShift Cluster Manager 내에서 새 클러스터를 검색하고 식별합니다.

True

Hive

OpenShift Container Platform 클러스터의 초기 구성 프로비저닝 및 수행

True

Hypershift

비용 및 시간 효율성과 클라우드 간 이식성으로 규모에 맞게 OpenShift Container Platform 컨트롤 플레인 호스트

True

hypershift-local-hosting

로컬 클러스터 환경 내의 로컬 호스팅 기능 활성화

True

image-based-install-operator

설치를 완료하기 위해 단일 노드 OpenShift 클러스터에 사이트 구성 제공

False

local-cluster

다중 클러스터 엔진 Operator가 배포된 로컬 허브 클러스터의 가져오기 및 자체 관리를 활성화합니다.

True

managedserviceacccount

서비스 계정을 관리 클러스터에 동기화하고, 토큰을 시크릿 리소스로 수집하여 허브 클러스터로 다시 제공

True

server-foundation

다중 클러스터 환경 내에서 서버 측 작업에 대한 기본 서비스 제공

True

다중 클러스터 엔진 Operator를 클러스터에 설치할 때 나열된 모든 구성 요소가 기본적으로 활성화되어 있는 것은 아닙니다.

MultiClusterEngine 사용자 정의 리소스에 하나 이상의 속성을 추가하여 설치 중 또는 설치 후 다중 클러스터 엔진 Operator를 추가로 구성할 수 있습니다. 추가할 수 있는 속성에 대한 정보를 계속 읽습니다.

1.5.5.2. 콘솔 및 구성 요소 구성

다음 예제는 구성 요소를 활성화하거나 비활성화하는 데 사용할 수 있는 spec.overrides 기본 템플릿을 표시합니다.

apiVersion: operator.open-cluster-management.io/v1
kind: MultiClusterEngine
metadata:
  name: multiclusterengine
spec:
  overrides:
    components:
    - name: <name> 
1

      enabled: true
Copy to Clipboard Toggle word wrap
  1. name 을 구성 요소의 이름으로 바꿉니다.

또는 다음 명령을 실행할 수 있습니다. namespace 를 프로젝트 및 name 의 이름으로 구성 요소 이름으로 교체합니다.

oc patch MultiClusterEngine <multiclusterengine-name> --type=json -p='[{"op": "add", "path": "/spec/overrides/components/-","value":{"name":"<name>","enabled":true}}]'
Copy to Clipboard Toggle word wrap

1.5.5.3. local-cluster 활성화

기본적으로 다중 클러스터 엔진 Operator를 실행 중인 클러스터는 로컬 클러스터 이며, 이는 자체적으로 관리하고 클러스터 목록에서 local-cluster 로 지정된 허브 클러스터입니다.

MultiClusterEngine 리소스의 로컬 클러스터 이름은 spec.localClusterName 값에서 설정됩니다. enabled 설정은 기능이 활성화되어 있는지 여부를 지정합니다.

enabled: true 설정은 클러스터를 local-cluster 로 지정하고 enabled: false 설정은 지정하지 않습니다. enabled: true 값을 사용하여 local-cluster 가 활성화된 다음 샘플을 참조하십시오.

apiVersion: multicluster.openshift.io/v1
kind: MultiClusterEngine
metadata:
  name: multiclusterengine
spec:
  localClusterName: <your-local-cluster-name>
  overrides:
    components:
    - name: local-cluster
      enabled: true
Copy to Clipboard Toggle word wrap

enabled 필드가 false 로 설정된 경우 local-cluster 이름을 변경할 수 있습니다. < your-local-cluster-name& gt; 값에 34자 이하의 문자를 사용해야 합니다. local-clusterenabled: true 로 설정된 경우 이름을 변경할 수 없습니다.

로컬 클러스터로 지정하지 않고 다중 클러스터 엔진 Operator를 설치하려면 spec.overrides.components 설정을 enabled: false 로 변경합니다. 다음 YAML 샘플을 참조하십시오.

apiVersion: multicluster.openshift.io/v1
kind: MultiClusterEngine
metadata:
  name: multiclusterengine
spec:
  localClusterName: <your-local-cluster-name>
  overrides:
    components:
    - name: local-cluster
      enabled: false
Copy to Clipboard Toggle word wrap

1.5.5.4. 사용자 정의 이미지 풀 시크릿

OpenShift Container Platform 또는 다중 클러스터 엔진 Operator에서 생성하지 않은 Kubernetes 클러스터를 가져오려면 배포 레지스트리에서 권한이 있는 콘텐츠에 액세스하기 위해 OpenShift Container Platform pull secret 정보가 포함된 시크릿을 생성합니다.

OpenShift Container Platform 클러스터의 시크릿 요구 사항은 Kubernetes Operator의 OpenShift Container Platform 및 다중 클러스터 엔진에서 자동으로 해결되므로 관리할 다른 유형의 Kubernetes 클러스터를 가져오지 않는 경우 시크릿을 생성할 필요가 없습니다.

중요: 이러한 시크릿은 네임스페이스에 고유하므로 엔진에 사용하는 네임스페이스에 있는지 확인합니다.

  1. 풀 시크릿 다운로드를 선택하여 cloud.redhat.com/openshift/install/pull-secret 에서 OpenShift Container Platform 풀 시크릿 파일을 다운로드합니다. OpenShift Container Platform 풀 시크릿은 Red Hat Customer Portal ID와 연결되며 모든 Kubernetes 공급자에서 동일합니다.
  2. 다음 명령을 실행하여 보안을 생성합니다.

    oc create secret generic <secret> -n <namespace> --from-file=.dockerconfigjson=<path-to-pull-secret> --type=kubernetes.io/dockerconfigjson
    Copy to Clipboard Toggle word wrap
    • secret 을 생성하려는 시크릿 이름으로 교체합니다.
    • 시크릿은 네임스페이스에 따라 네임스페이스를 사용하므로 네임스페이스를 프로젝트 네임스페이스로 교체합니다.
    • 다운로드한 OpenShift Container Platform 풀 시크릿의 경로로 path-to-pull-secret 을 교체합니다.

다음 예제는 사용자 정의 풀 시크릿을 사용하려는 경우 사용할 spec.imagePullSecret 템플릿을 표시합니다. secret 을 풀 시크릿 이름으로 교체합니다.

apiVersion: multicluster.openshift.io/v1
kind: MultiClusterEngine
metadata:
  name: multiclusterengine
spec:
  imagePullSecret: <secret>
Copy to Clipboard Toggle word wrap

1.5.5.5. 대상 네임스페이스

피연산자는 MultiClusterEngine 사용자 정의 리소스에 위치를 지정하여 지정된 네임스페이스에 설치할 수 있습니다. 이 네임스페이스는 MultiClusterEngine 사용자 정의 리소스의 애플리케이션 시 생성됩니다.

중요: 대상 네임스페이스를 지정하지 않으면 Operator는 multicluster-engine 네임스페이스에 설치하고 MultiClusterEngine 사용자 정의 리소스 사양에 설정합니다.

다음 예제는 대상 네임스페이스를 지정하는 데 사용할 수 있는 spec.targetNamespace 템플릿을 표시합니다. target 을 대상 네임스페이스의 이름으로 교체합니다. 참고: 대상 네임스페이스는 기본 네임스페이스가 될 수 없습니다.

apiVersion: multicluster.openshift.io/v1
kind: MultiClusterEngine
metadata:
  name: multiclusterengine
spec:
  targetNamespace: <target>
Copy to Clipboard Toggle word wrap

1.5.5.6. availabilityConfig

hub 클러스터에는 HighBasic 이라는 두 가지 가능성이 있습니다. 기본적으로 허브 클러스터의 가용성은 High 이며 hub 클러스터 구성 요소에 2replicaCount 를 제공합니다. 이는 장애 조치의 경우 더 나은 지원을 제공하지만 기본 가용성보다 많은 리소스를 사용하므로 구성 요소에 1replicaCount 가 제공됩니다.

중요: 단일 노드 OpenShift 클러스터에서 다중 클러스터 엔진 Operator를 사용하는 경우 spec.availabilityConfigBasic 으로 설정합니다.

다음 예제에서는 기본 가용성이 있는 spec.availabilityConfig 템플릿을 보여줍니다.

apiVersion: multicluster.openshift.io/v1
kind: MultiClusterEngine
metadata:
  name: multiclusterengine
spec:
  availabilityConfig: "Basic"
Copy to Clipboard Toggle word wrap

1.5.5.7. nodeSelector

클러스터의 특정 노드에 설치할 MultiClusterEngine 에서 노드 선택기 세트를 정의할 수 있습니다. 다음 예제에서는 node-role.kubernetes.io/infra: 레이블이 있는 노드에 Pod를 할당하는 spec.nodeSelector 를 보여줍니다.

spec:
  nodeSelector:
    node-role.kubernetes.io/infra: ""
Copy to Clipboard Toggle word wrap

Red Hat Advanced Cluster Management for Kubernetes Hub 클러스터에 대한 노드 선택기 세트를 정의하려면 Red Hat Advanced Cluster Management 설명서의 nodeSelector 를 참조하십시오.

1.5.5.8. 허용 오차

허용 오차 목록을 정의하여 MultiClusterEngine 이 클러스터에 정의된 특정 테인트를 허용할 수 있습니다. 다음 예제는 node-role.kubernetes.io/infra 테인트와 일치하는 spec.tolerations 를 보여줍니다.

spec:
  tolerations:
  - key: node-role.kubernetes.io/infra
    effect: NoSchedule
    operator: Exists
Copy to Clipboard Toggle word wrap

이전 infra-node 허용 오차는 구성에 허용 오차를 지정하지 않고 기본적으로 Pod에 설정됩니다. 구성에서 허용 오차를 사용자 정의하면 이 기본 동작이 대체됩니다.

Red Hat Advanced Cluster Management for Kubernetes Hub 클러스터의 허용 오차 목록을 정의하려면 Red Hat Advanced Cluster Management 설명서의 허용 오차 를 참조하십시오.

1.5.5.9. ManagedServiceAccount 애드온

ManagedServiceAccount 애드온을 사용하면 관리 클러스터에서 서비스 계정을 생성하거나 삭제할 수 있습니다. 이 애드온을 사용하여 설치하려면 spec.overridesMultiClusterEngine 사양에 다음을 포함합니다.

apiVersion: multicluster.openshift.io/v1
kind: MultiClusterEngine
metadata:
  name: multiclusterengine
spec:
  overrides:
    components:
    - name: managedserviceaccount
      enabled: true
Copy to Clipboard Toggle word wrap

명령줄에서 리소스를 편집하고 managedserviceaccount 구성 요소를 enabled: true 로 설정하여 ManagedServiceAccount 애드온을 MultiClusterEngine 을 생성한 후 활성화할 수 있습니다. 또는 다음 명령을 실행하고 <multiclusterengine-name>을 MultiClusterEngine 리소스의 이름으로 교체할 수 있습니다.

oc patch MultiClusterEngine <multiclusterengine-name> --type=json -p='[{"op": "add", "path": "/spec/overrides/components/-","value":{"name":"managedserviceaccount","enabled":true}}]'
Copy to Clipboard Toggle word wrap

1.5.6. 설치 제거

Kubernetes Operator에 대한 다중 클러스터 엔진을 설치 제거할 때 프로세스의 두 가지 수준인 사용자 정의 리소스 제거전체 Operator 설치 제거가 표시됩니다. 제거 프로세스를 완료하는 데 최대 5분이 걸릴 수 있습니다.

  • 사용자 정의 리소스 제거는 MultiClusterEngine 인스턴스의 사용자 정의 리소스를 제거하지만 다른 필요한 Operator 리소스를 제거하는 가장 기본적인 유형의 설치 제거입니다. 이 설치 제거 수준은 동일한 설정 및 구성 요소를 사용하여 다시 설치하려는 경우 유용합니다.
  • 두 번째 수준은 사용자 정의 리소스 정의와 같은 구성 요소를 제외하고 대부분의 Operator 구성 요소를 제거하는 더 완전한 제거 사항입니다. 이 단계를 계속할 때 사용자 정의 리소스 제거와 함께 제거되지 않은 모든 구성 요소 및 서브스크립션을 제거합니다. 이 제거 후 사용자 정의 리소스를 다시 설치하기 전에 Operator를 다시 설치해야 합니다.

1.5.6.1. 사전 요구 사항: 사용 가능한 서비스 분리

Kubernetes Operator용 다중 클러스터 엔진을 제거하기 전에 해당 엔진에서 관리하는 모든 클러스터를 분리해야 합니다. 오류를 방지하려면 엔진에서 계속 관리하는 모든 클러스터를 분리한 다음 다시 제거하십시오.

  • 관리 클러스터가 연결되어 있는 경우 다음 메시지가 표시될 수 있습니다.

    Cannot delete MultiClusterEngine resource because ManagedCluster resource(s) exist
    Copy to Clipboard Toggle word wrap

    클러스터 분리에 대한 자세한 내용은 클러스터 생성에서 공급자의 정보를 선택하여 관리에서 클러스터 제거 섹션을 참조하십시오.

1.5.6.2. 명령을 사용하여 리소스 제거

  1. 아직 설치되지 않은 경우 OpenShift Container Platform CLI가 oc 명령을 실행하도록 구성되어 있는지 확인합니다. oc 명령 구성에 대한 자세한 내용은 OpenShift Container Platform 설명서에서 OpenShift CLI 시작하기 를 참조하십시오.
  2. 다음 명령을 입력하여 프로젝트 네임스페이스로 변경합니다. namespace 를 프로젝트 네임스페이스의 이름으로 교체합니다.

    oc project <namespace>
    Copy to Clipboard Toggle word wrap
  3. 다음 명령을 입력하여 MultiClusterEngine 사용자 정의 리소스를 제거합니다.

    oc delete multiclusterengine --all
    Copy to Clipboard Toggle word wrap

    다음 명령을 입력하여 진행 상황을 볼 수 있습니다.

    oc get multiclusterengine -o yaml
    Copy to Clipboard Toggle word wrap
  4. 다음 명령을 입력하여 설치된 네임스페이스에서 multicluster-engine ClusterServiceVersion 을 삭제하고 v2.x.0 변수를 대체하는 버전을 입력합니다.
❯ oc get csv
NAME                         DISPLAY                              VERSION   REPLACES   PHASE
multicluster-engine.v2.x.0   multicluster engine for Kubernetes   2.x.0                Succeeded

❯ oc delete clusterserviceversion multicluster-engine.v2.x.0
❯ oc delete sub multicluster-engine
Copy to Clipboard Toggle word wrap

여기에 표시된 CSV 버전은 다를 수 있습니다.

1.5.6.3. 콘솔을 사용하여 구성 요소 삭제

RedHat OpenShift Container Platform 콘솔을 사용하여 설치 제거할 때 Operator를 제거합니다. 콘솔을 사용하여 설치 제거하려면 다음 단계를 완료합니다.

  1. OpenShift Container Platform 콘솔 탐색에서 Operator > 설치된 Operator > Kubernetes용 멀티 클러스터 엔진을 선택합니다.
  2. MultiClusterEngine 사용자 정의 리소스를 제거합니다.

    1. Multiclusterengine 의 탭을 선택합니다.
    2. MultiClusterEngine 사용자 정의 리소스의 옵션 메뉴를 선택합니다.
    3. MultiClusterEngine 삭제를 선택합니다.
  3. 다음 섹션의 절차에 따라 정리 스크립트를 실행합니다.

    팁: Kubernetes Operator 버전에 대해 동일한 다중 클러스터 엔진을 다시 설치하려는 경우 이 절차의 나머지 단계를 건너뛰고 사용자 정의 리소스를 다시 설치할 수 있습니다.

  4. 설치된 Operator로 이동합니다.
  5. 옵션 메뉴를 선택하고 Uninstall operator 를 선택하여 Kubernetes_ operator의 _ 다중 클러스터 엔진을 제거합니다.

1.5.6.4. 문제 해결 설치 제거

다중 클러스터 엔진 사용자 정의 리소스가 제거되지 않는 경우 정리 스크립트를 실행하여 나머지 아티팩트를 제거합니다.

  1. 다음 스크립트를 파일에 복사합니다.

    #!/bin/bash
    oc delete apiservice v1.admission.cluster.open-cluster-management.io v1.admission.work.open-cluster-management.io
    oc delete validatingwebhookconfiguration multiclusterengines.multicluster.openshift.io
    oc delete mce --all
    Copy to Clipboard Toggle word wrap

자세한 내용은 연결이 끊긴 환경에서 미러링 을 참조하십시오.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat