12.7. 컨트롤 플레인 머신 세트 문제 해결


이 섹션의 정보를 사용하여 발생할 수 있는 문제를 이해하고 복구하십시오.

12.7.1. 컨트롤 플레인 머신 세트 사용자 정의 리소스 상태 확인

ControlPlaneMachineSet CR(사용자 정의 리소스)의 존재 및 상태를 확인할 수 있습니다.

프로세스

  • 다음 명령을 실행하여 CR의 상태를 확인합니다.

    $ oc get controlplanemachineset.machine.openshift.io cluster \
      --namespace openshift-machine-api
    • Active 의 결과는 ControlPlaneMachineSet CR이 존재하고 활성화되어 있음을 나타냅니다. 관리자 작업이 필요하지 않습니다.
    • Inactive 의 결과는 ControlPlaneMachineSet CR이 존재하지만 활성화되지 않았음을 나타냅니다.
    • NotFound 의 결과는 기존 ControlPlaneMachineSet CR이 없음을 나타냅니다.

다음 단계

컨트롤 플레인 머신 세트를 사용하려면 클러스터에 대한 올바른 설정이 있는 ControlPlaneMachineSet CR이 있는지 확인해야 합니다.

  • 클러스터에 기존 CR이 있는 경우 CR의 구성이 클러스터에 적합한지 확인해야 합니다.
  • 클러스터에 기존 CR이 없는 경우 클러스터에 대한 올바른 구성으로 클러스터를 생성해야 합니다.

12.7.2. 누락된 Azure 내부 로드 밸런서 추가

Azure의 ControlPlaneMachineSet 및 컨트롤 플레인 Machine CR(사용자 정의 리소스) 모두에 internalLoadBalancer 매개변수가 필요합니다. 이 매개변수가 클러스터에 사전 구성되지 않은 경우 두 CR에 모두 추가해야 합니다.

이 매개변수가 Azure 공급자 사양에 있는 위치에 대한 자세한 내용은 샘플 Azure 공급자 사양을 참조하십시오. 컨트롤 플레인 Machine CR의 배치는 비슷합니다.

프로세스

  1. 다음 명령을 실행하여 클러스터의 컨트롤 플레인 시스템을 나열합니다.

    $ oc get machines \
      -l machine.openshift.io/cluster-api-machine-role==master \
      -n openshift-machine-api
  2. 각 컨트롤 플레인 머신에 대해 다음 명령을 실행하여 CR을 편집합니다.

    $ oc edit machine <control_plane_machine_name>
  3. 클러스터에 대한 올바른 세부 정보를 사용하여 internalLoadBalancer 매개변수를 추가하고 변경 사항을 저장합니다.
  4. 다음 명령을 실행하여 컨트롤 플레인 머신 세트 CR을 편집합니다.

    $ oc edit controlplanemachineset.machine.openshift.io cluster \
      -n openshift-machine-api
  5. 클러스터에 대한 올바른 세부 정보를 사용하여 internalLoadBalancer 매개변수를 추가하고 변경 사항을 저장합니다.

다음 단계

  • 기본 RollingUpdate 업데이트 전략을 사용하는 클러스터의 경우 Operator는 변경 사항을 컨트롤 플레인 구성에 자동으로 전파합니다.
  • OnDelete 업데이트 전략을 사용하도록 구성된 클러스터의 경우 컨트롤 플레인 시스템을 수동으로 교체해야 합니다.

12.7.3. 성능 저하된 etcd Operator 복구

특정 상황에서 etcd Operator의 성능이 저하될 수 있습니다.

예를 들어 수정을 수행하는 동안 머신 상태 점검에서 etcd를 호스팅하는 컨트롤 플레인 시스템을 삭제할 수 있습니다. 그 시점에서 etcd 멤버에 연결할 수 없는 경우 etcd Operator의 성능이 저하됩니다.

etcd Operator의 성능이 저하되면 Operator에서 실패한 멤버를 강제로 제거하고 클러스터 상태를 복원하려면 수동 개입이 필요합니다.

프로세스

  1. 다음 명령을 실행하여 클러스터의 컨트롤 플레인 시스템을 나열합니다.

    $ oc get machines \
      -l machine.openshift.io/cluster-api-machine-role==master \
      -n openshift-machine-api \
      -o wide

    다음 조건 중 하나라도 실패한 컨트롤 플레인 시스템을 나타낼 수 있습니다.

    • STATE 값이 중지되었습니다.
    • PHASE 값은 Failed 입니다.
    • PHASE 값은 10 분 이상 Deleting 됩니다.
    중요

    계속하기 전에 클러스터에 두 개의 정상 컨트롤 플레인 시스템이 있는지 확인합니다. 둘 이상의 컨트롤 플레인 시스템에서 이 절차의 작업을 수행하면 etcd 쿼럼이 손실되어 데이터가 손실될 수 있습니다.

    대부분의 컨트롤 플레인 호스트가 손실되어 etcd 쿼럼이 손실된 경우 이 절차 대신 재해 복구 절차 "이전 클러스터 상태"를 따라야 합니다.

  2. 다음 명령을 실행하여 실패한 컨트롤 플레인 머신의 머신 CR을 편집합니다.

    $ oc edit machine <control_plane_machine_name>
  3. 실패한 컨트롤 플레인 시스템에서 lifecycleHooks 매개변수의 내용을 제거하고 변경 사항을 저장합니다.

    etcd Operator는 클러스터에서 실패한 머신을 제거한 다음 새 etcd 멤버를 안전하게 추가할 수 있습니다.

12.7.4. RHOSP에서 실행되는 클러스터 업그레이드

OpenShift Container Platform 4.13 또는 이전 버전으로 생성된 RHOSP(Red Hat OpenStack Platform)에서 실행되는 클러스터의 경우 컨트롤 플레인 머신 세트를 사용하기 전에 업그레이드 후 작업을 수행해야 할 수 있습니다.

12.7.4.1. 업그레이드 후 루트 볼륨 가용성 영역이 있는 시스템이 있는 RHOSP 클러스터 구성

업그레이드하는 RHOSP(Red Hat OpenStack Platform)에서 실행되는 일부 클러스터의 경우 다음 구성이 true인 경우 컨트롤 플레인 머신 세트를 사용하기 전에 머신 리소스를 수동으로 업데이트해야 합니다.

  • 업그레이드된 클러스터는 OpenShift Container Platform 4.13 또는 이전 버전을 사용하여 생성되었습니다.
  • 클러스터 인프라는 설치 관리자 프로비저닝입니다.
  • 시스템은 여러 가용성 영역에 분산되어 있었습니다.
  • 시스템은 블록 스토리지 가용성 영역이 정의되지 않은 루트 볼륨을 사용하도록 구성되었습니다.

이 절차가 필요한 이유를 이해하려면 솔루션 #7024383 을 참조하십시오.

프로세스

  1. 모든 컨트롤 플레인 시스템의 경우 환경과 일치하는 모든 컨트롤 플레인 시스템의 공급자 사양을 편집합니다. 예를 들어 머신 master-0 을 편집하려면 다음 명령을 입력합니다.

    $ oc edit machine/<cluster_id>-master-0 -n openshift-machine-api

    다음과 같습니다.

    <cluster_id>
    업그레이드된 클러스터의 ID를 지정합니다.
  2. provider 사양에서 rootVolume.availabilityZone 속성 값을 사용하려는 가용성 영역의 볼륨으로 설정합니다.

    RHOSP 공급자 사양의 예

    providerSpec:
      value:
        apiVersion: machine.openshift.io/v1alpha1
        availabilityZone: az0
          cloudName: openstack
        cloudsSecret:
          name: openstack-cloud-credentials
          namespace: openshift-machine-api
        flavor: m1.xlarge
        image: rhcos-4.14
        kind: OpenstackProviderSpec
        metadata:
          creationTimestamp: null
        networks:
        - filter: {}
          subnets:
          - filter:
              name: refarch-lv7q9-nodes
              tags: openshiftClusterID=refarch-lv7q9
        rootVolume:
            availabilityZone: nova 1
            diskSize: 30
            sourceUUID: rhcos-4.12
            volumeType: fast-0
        securityGroups:
        - filter: {}
          name: refarch-lv7q9-master
        serverGroupName: refarch-lv7q9-master
        serverMetadata:
          Name: refarch-lv7q9-master
          openshiftClusterID: refarch-lv7q9
        tags:
        - openshiftClusterID=refarch-lv7q9
        trunk: true
        userDataSecret:
          name: master-user-data

    1
    영역 이름을 이 값으로 설정합니다.
    참고

    초기 클러스터 배포 후 머신 리소스를 편집하거나 다시 생성한 경우 구성에 대해 이러한 단계를 조정해야 할 수 있습니다.

    RHOSP 클러스터에서 시스템의 루트 볼륨의 가용성 영역을 찾아 값으로 사용합니다.

  3. 다음 명령을 실행하여 컨트롤 플레인 머신 세트 리소스에 대한 정보를 검색합니다.

    $ oc describe controlplanemachineset.machine.openshift.io/cluster --namespace openshift-machine-api
  4. 다음 명령을 실행하여 리소스를 편집합니다.

    $ oc edit controlplanemachineset.machine.openshift.io/cluster --namespace openshift-machine-api
  5. 해당 리소스의 경우 spec.state 속성 값을 Active 로 설정하여 클러스터의 컨트롤 플레인 머신 세트를 활성화합니다.

Cluster Control Plane Machine Set Operator에서 컨트롤 플레인을 관리할 수 있습니다.

12.7.4.2. 업그레이드 후 가용성 영역이 있는 컨트롤 플레인 시스템이 있는 RHOSP 클러스터 구성

업그레이드하는 RHOSP(Red Hat OpenStack Platform)에서 실행되는 일부 클러스터의 경우 다음 구성이 true인 경우 컨트롤 플레인 머신 세트를 사용하기 전에 머신 리소스를 수동으로 업데이트해야 합니다.

  • 업그레이드된 클러스터는 OpenShift Container Platform 4.13 또는 이전 버전을 사용하여 생성되었습니다.
  • 클러스터 인프라는 설치 관리자 프로비저닝입니다.
  • 컨트롤 플레인 시스템은 여러 컴퓨팅 가용 영역에 분산되어 있었습니다.

이 절차가 필요한 이유를 이해하려면 솔루션 #7013893 을 참조하십시오.

프로세스

  1. master-1master-2 컨트롤 플레인 시스템의 경우 편집을 위해 공급자 사양을 엽니다. 예를 들어 첫 번째 머신을 편집하려면 다음 명령을 입력합니다.

    $ oc edit machine/<cluster_id>-master-1 -n openshift-machine-api

    다음과 같습니다.

    <cluster_id>
    업그레이드된 클러스터의 ID를 지정합니다.
  2. master-1master-2 컨트롤 플레인 시스템의 경우 공급자 사양의 serverGroupName 속성 값을 머신 master-0 과 일치하도록 편집합니다.

    RHOSP 공급자 사양의 예

    providerSpec:
      value:
        apiVersion: machine.openshift.io/v1alpha1
        availabilityZone: az0
          cloudName: openstack
        cloudsSecret:
          name: openstack-cloud-credentials
          namespace: openshift-machine-api
        flavor: m1.xlarge
        image: rhcos-4.17
        kind: OpenstackProviderSpec
        metadata:
          creationTimestamp: null
        networks:
        - filter: {}
          subnets:
          - filter:
              name: refarch-lv7q9-nodes
              tags: openshiftClusterID=refarch-lv7q9
        securityGroups:
        - filter: {}
          name: refarch-lv7q9-master
        serverGroupName: refarch-lv7q9-master-az0 1
        serverMetadata:
          Name: refarch-lv7q9-master
          openshiftClusterID: refarch-lv7q9
        tags:
        - openshiftClusterID=refarch-lv7q9
        trunk: true
        userDataSecret:
          name: master-user-data

    1
    이 값은 시스템 master-0,master-1master-3 의 경우 일치해야 합니다.
    참고

    초기 클러스터 배포 후 머신 리소스를 편집하거나 다시 생성한 경우 구성에 대해 이러한 단계를 조정해야 할 수 있습니다.

    RHOSP 클러스터에서 컨트롤 플레인 인스턴스가 있는 서버 그룹을 찾아 값으로 사용합니다.

  3. 다음 명령을 실행하여 컨트롤 플레인 머신 세트 리소스에 대한 정보를 검색합니다.

    $ oc describe controlplanemachineset.machine.openshift.io/cluster --namespace openshift-machine-api
  4. 다음 명령을 실행하여 리소스를 편집합니다.

    $ oc edit controlplanemachineset.machine.openshift.io/cluster --namespace openshift-machine-api
  5. 해당 리소스의 경우 spec.state 속성 값을 Active 로 설정하여 클러스터의 컨트롤 플레인 머신 세트를 활성화합니다.

Cluster Control Plane Machine Set Operator에서 컨트롤 플레인을 관리할 수 있습니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.