13.5.2. 베어 메탈 컨트롤 플레인 노드 교체
설치 관리자 프로비저닝 OpenShift Container Platform 컨트롤 플레인 노드를 교체하려면 다음 절차를 사용하십시오.
기존 컨트롤 플레인 호스트에서 BareMetalHost 오브젝트 정의를 재사용하는 경우 external Provisioned 필드를 true 로 설정하지 마십시오.
기존 컨트롤 플레인 BareMetalHost 오브젝트에 OpenShift Container Platform 설치 프로그램에서 프로비저닝한 경우 external Provisioned 플래그가 true 로 설정될 수 있습니다.
사전 요구 사항
-
cluster-admin역할의 사용자로 클러스터에 액세스할 수 있어야 합니다. etcd 백업이 수행되었습니다.
중요문제가 발생하면 클러스터를 복원할 수 있도록 이 절차를 수행하기 전에 etcd 백업을 수행하십시오. etcd 백업에 대한 자세한 내용은 추가 리소스 섹션을 참조하십시오.
프로세스
Bare Metal Operator를 사용할 수 있는지 확인합니다.
$ oc get clusteroperator baremetal출력 예
NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE MESSAGE baremetal 4.10.12 True False False 3d15h이전
BareMetalHost및Machine개체를 제거합니다.$ oc delete bmh -n openshift-machine-api vmaster-0 $ oc delete machine -n openshift-machine-api kni1-master-0BareMetalHost및오브젝트를 제거한 후 머신 컨트롤러에서MachineNode오브젝트를 자동으로 삭제합니다.BMC 인증 정보를 저장할 새
BareMetalHost오브젝트와 시크릿을 생성합니다.$ cat <<EOF | oc apply -f - apiVersion: v1 kind: Secret metadata: name: kni1-master-0-bmc-secret namespace: openshift-machine-api data: password: <username> username: <password> type: Opaque --- apiVersion: metal3.io/v1alpha1 kind: BareMetalHost metadata: name: kni1-master-0 namespace: openshift-machine-api spec: automatedCleaningMode: disabled bmc: address: redfish-virtualmedia+http://192.168.124.113:8000/redfish/v1/Systems/f87eaf82-b32d-4291-ace6-b28677964e78 credentialsName: kni1-master-0-bmc-secret bootMACAddress: aa:aa:aa:aa:ab:03 bootMode: UEFI externallyProvisioned: false hardwareProfile: unknown online: true EOF검사가 완료되면
BareMetalHost오브젝트가 생성되고 프로비저닝할 수 있습니다.사용 가능한
BareMetalHost오브젝트를 확인합니다.$ oc get bmh -n openshift-machine-api출력 예
NAME STATE CONSUMER ONLINE ERROR AGE kni1-master-0 available ocp-hkw9p-master-0 true 1h10m kni1-master-1 externally provisioned ocp-hkw9p-master-1 true 4h53m kni1-master-2 externally provisioned ocp-hkw9p-master-2 true 4h53m kni1-worker-0 provisioned ocp-hkw9p-worker-0-ktmmx true 4h53m kni1-worker-1 provisioned ocp-hkw9p-worker-0-l2zmb true 4h53m컨트롤 플레인 노드에 대한
MachineSet오브젝트가 없으므로 대신Machine오브젝트를 생성해야 합니다. 다른 컨트롤 플레인머신오브젝트에서providerSpec을 복사할 수 있습니다.Machine오브젝트를 생성합니다.$ cat <<EOF | oc apply -f - apiVersion: machine.openshift.io/v1beta1 kind: Machine metadata: annotations: metal3.io/BareMetalHost: openshift-machine-api/kni1-master-0 labels: machine.openshift.io/cluster-api-cluster: kni1 machine.openshift.io/cluster-api-machine-role: master machine.openshift.io/cluster-api-machine-type: master name: kni1-master-0 namespace: openshift-machine-api spec: metadata: {} providerSpec: value: apiVersion: baremetal.cluster.k8s.io/v1alpha1 customDeploy: method: install_coreos hostSelector: {} image: checksum: "" url: "" kind: BareMetalMachineProviderSpec metadata: creationTimestamp: null userData: name: master-user-data-managed EOF단일 단계에서
BareMetalHost,Secret,Machine오브젝트를 정의 및 생성하려면 정의를 사용하여 YAML 파일(example.yaml)을 생성하고 다음 명령을 실행합니다.$ oc create -f example.yaml프로비저닝 프로세스는 baremetal-operator를 사용하여 RHCOS를 설치하고 클러스터에 추가할 호스트를 준비합니다.
BareMetalHost오브젝트를 보려면 다음 명령을 실행합니다.$ oc get bmh -A출력 예
NAME STATE CONSUMER ONLINE ERROR AGE kni1-master-0 provisioned ocp-hkw9p-master-0 true 2h53m kni1-master-1 externally provisioned ocp-hkw9p-master-1 true 5h53m kni1-master-2 externally provisioned ocp-hkw9p-master-2 true 5h53m kni1-worker-0 provisioned ocp-hkw9p-worker-0-ktmmx true 5h53m kni1-worker-1 provisioned ocp-hkw9p-worker-0-l2zmb true 5h53mRHCOS 설치 후
BareMetalHost가 클러스터에 추가되었는지 확인합니다.$ oc get nodes출력 예
NAME STATUS ROLES AGE VERSION kni1-master-0 available master 4m2s v1.18.2 kni1-master-1 available master 141m v1.18.2 kni1-master-2 available master 141m v1.18.2 kni1-worker-0 available worker 87m v1.18.2참고새 컨트롤 플레인 노드를 교체한 후 새 노드에서 실행중인 etcd pod는
크래시 루프상태에 있습니다. 자세한 내용은 "비활성 etcd 멤버 교체"를 참조하십시오.