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의 배치는 비슷합니다.
프로세스
다음 명령을 실행하여 클러스터의 컨트롤 플레인 시스템을 나열합니다.
$ oc get machines \ -l machine.openshift.io/cluster-api-machine-role==master \ -n openshift-machine-api
각 컨트롤 플레인 머신에 대해 다음 명령을 실행하여 CR을 편집합니다.
$ oc edit machine <control_plane_machine_name>
-
클러스터에 대한 올바른 세부 정보를 사용하여
internalLoadBalancer
매개변수를 추가하고 변경 사항을 저장합니다. 다음 명령을 실행하여 컨트롤 플레인 머신 세트 CR을 편집합니다.
$ oc edit controlplanemachineset.machine.openshift.io cluster \ -n openshift-machine-api
-
클러스터에 대한 올바른 세부 정보를 사용하여
internalLoadBalancer
매개변수를 추가하고 변경 사항을 저장합니다.
다음 단계
-
기본
RollingUpdate
업데이트 전략을 사용하는 클러스터의 경우 Operator는 변경 사항을 컨트롤 플레인 구성에 자동으로 전파합니다. -
OnDelete
업데이트 전략을 사용하도록 구성된 클러스터의 경우 컨트롤 플레인 시스템을 수동으로 교체해야 합니다.
추가 리소스
12.7.3. 성능 저하된 etcd Operator 복구
특정 상황에서 etcd Operator의 성능이 저하될 수 있습니다.
예를 들어 수정을 수행하는 동안 머신 상태 점검에서 etcd를 호스팅하는 컨트롤 플레인 시스템을 삭제할 수 있습니다. 그 시점에서 etcd 멤버에 연결할 수 없는 경우 etcd Operator의 성능이 저하됩니다.
etcd Operator의 성능이 저하되면 Operator에서 실패한 멤버를 강제로 제거하고 클러스터 상태를 복원하려면 수동 개입이 필요합니다.
프로세스
다음 명령을 실행하여 클러스터의 컨트롤 플레인 시스템을 나열합니다.
$ 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 쿼럼이 손실된 경우 이 절차 대신 재해 복구 절차 "이전 클러스터 상태"를 따라야 합니다.
-
다음 명령을 실행하여 실패한 컨트롤 플레인 머신의 머신 CR을 편집합니다.
$ oc edit machine <control_plane_machine_name>
실패한 컨트롤 플레인 시스템에서
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 을 참조하십시오.
프로세스
모든 컨트롤 플레인 시스템의 경우 환경과 일치하는 모든 컨트롤 플레인 시스템의 공급자 사양을 편집합니다. 예를 들어 머신
master-0
을 편집하려면 다음 명령을 입력합니다.$ oc edit machine/<cluster_id>-master-0 -n openshift-machine-api
다음과 같습니다.
<cluster_id>
- 업그레이드된 클러스터의 ID를 지정합니다.
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 클러스터에서 시스템의 루트 볼륨의 가용성 영역을 찾아 값으로 사용합니다.
다음 명령을 실행하여 컨트롤 플레인 머신 세트 리소스에 대한 정보를 검색합니다.
$ oc describe controlplanemachineset.machine.openshift.io/cluster --namespace openshift-machine-api
다음 명령을 실행하여 리소스를 편집합니다.
$ oc edit controlplanemachineset.machine.openshift.io/cluster --namespace openshift-machine-api
-
해당 리소스의 경우
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 을 참조하십시오.
프로세스
master-1
및master-2
컨트롤 플레인 시스템의 경우 편집을 위해 공급자 사양을 엽니다. 예를 들어 첫 번째 머신을 편집하려면 다음 명령을 입력합니다.$ oc edit machine/<cluster_id>-master-1 -n openshift-machine-api
다음과 같습니다.
<cluster_id>
- 업그레이드된 클러스터의 ID를 지정합니다.
master-1
및master-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-1
및master-3
의 경우 일치해야 합니다.
참고초기 클러스터 배포 후 머신 리소스를 편집하거나 다시 생성한 경우 구성에 대해 이러한 단계를 조정해야 할 수 있습니다.
RHOSP 클러스터에서 컨트롤 플레인 인스턴스가 있는 서버 그룹을 찾아 값으로 사용합니다.
다음 명령을 실행하여 컨트롤 플레인 머신 세트 리소스에 대한 정보를 검색합니다.
$ oc describe controlplanemachineset.machine.openshift.io/cluster --namespace openshift-machine-api
다음 명령을 실행하여 리소스를 편집합니다.
$ oc edit controlplanemachineset.machine.openshift.io/cluster --namespace openshift-machine-api
-
해당 리소스의 경우
spec.state
속성 값을Active
로 설정하여 클러스터의 컨트롤 플레인 머신 세트를 활성화합니다.
Cluster Control Plane Machine Set Operator에서 컨트롤 플레인을 관리할 수 있습니다.