6.6.6. 노드, 베어 메탈 호스트 및 머신을 함께 연결


머신을 생성한 다음 새 BareMetalHost 오브젝트 및 노드와 연결하여 새 컨트롤 플레인 노드를 계속 생성합니다.

프로세스

  1. 다음 명령을 실행하여 컨트롤 플레인 노드의 providerID 를 가져옵니다.

    $ oc get -n openshift-machine-api baremetalhost -l installer.openshift.io/role=control-plane -ojson | jq -r '.items[] | "baremetalhost:///openshift-machine-api/" + .metadata.name + "/" + .metadata.uid'

    출력 예

    baremetalhost:///openshift-machine-api/master-00/6214c5cf-c798-4168-8c78-1ff1a3cd2cb4
    baremetalhost:///openshift-machine-api/master-01/58fb60bd-b2a6-4ff3-a88d-208c33abf954
    baremetalhost:///openshift-machine-api/master-02/dc5a94f3-625b-43f6-ab5a-7cc4fc79f105

  2. 다음 명령을 실행하여 라벨에 대한 클러스터 정보를 가져옵니다.

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

    출력 예

    NAME                           PHASE   TYPE  REGION  ZONE  AGE  CLUSTER-API-CLUSTER
    ci-op-jcp3s7wx-ng5sd-master-0  Running                     10h  ci-op-jcp3s7wx-ng5sd
    ci-op-jcp3s7wx-ng5sd-master-1  Running                     10h  ci-op-jcp3s7wx-ng5sd
    ci-op-jcp3s7wx-ng5sd-master-2  Running                     10h  ci-op-jcp3s7wx-ng5sd

  3. 다음과 유사한 yaml 파일을 생성하여 새 컨트롤 플레인 노드에 대한 Machine 오브젝트를 생성합니다.

    apiVersion: machine.openshift.io/v1beta1
    kind: Machine
    metadata:
      annotations:
        metal3.io/BareMetalHost: openshift-machine-api/<new_control_plane_machine> 
    1
    
      finalizers:
        - machine.machine.openshift.io
      labels:
        machine.openshift.io/cluster-api-cluster: <cluster_api_cluster> 
    2
    
        machine.openshift.io/cluster-api-machine-role: master
        machine.openshift.io/cluster-api-machine-type: master
      name: <new_control_plane_machine> 
    3
    
      namespace: openshift-machine-api
    spec:
      metadata: {}
      providerID: <provider_id> 
    4
    
      providerSpec:
        value:
          apiVersion: baremetal.cluster.k8s.io/v1alpha1
          hostSelector: {}
          image:
            checksum: ""
            url: ""
          kind: BareMetalMachineProviderSpec
          userData:
            name: master-user-data-managed

    다음과 같습니다.

    <new_control_plane_machine>
    이전에 삭제한 머신 이름과 같을 수 있는 새 머신의 이름을 지정합니다.
    <cluster_api_cluster>
    이전 단계의 출력에 표시된 다른 컨트롤 플레인 시스템의 CLUSTER-API-CLUSTER 값을 지정합니다.
    <provider_id>
    이전 단계의 출력에 표시된 새 베어 메탈 호스트의 providerID 값을 지정합니다.

    다음 경고가 예상됩니다.

    Warning: metadata.finalizers: "machine.machine.openshift.io": prefer a domain-qualified finalizer name to avoid accidental conflicts with other finalizer writers
  4. 단일 bash 쉘 세션에서 다음 단계를 수행하여 새 컨트롤 플레인 노드 및 Machine 오브젝트를 BareMetalHost 오브젝트에 연결합니다.

    1. 다음 명령을 실행하여 NEW_NODE_NAME 변수를 정의합니다.

      $ NEW_NODE_NAME=<new_node_name>

      & lt;new_node_name& gt;을 새 컨트롤 플레인 노드의 이름으로 바꿉니다.

    2. 다음 명령을 실행하여 NEW_MACHINE_NAME 변수를 정의합니다.

      $ NEW_MACHINE_NAME=<new_machine_name>

      & lt;new_machine_name& gt;을 새 머신의 이름으로 바꿉니다.

    3. 새 노드의 BareMetalHost 오브젝트에서 추출하도록 다음 명령을 실행하여 BMH_UID 를 정의합니다.

      $ BMH_UID=$(oc get -n openshift-machine-api bmh $NEW_NODE_NAME -ojson | jq -r .metadata.uid)
      $ echo $BMH_UID
    4. 다음 명령을 실행하여 consumerRef 오브젝트를 베어 메탈 호스트에 패치합니다.

      $ oc patch -n openshift-machine-api bmh $NEW_NODE_NAME --type merge --patch '{"spec":{"consumerRef":{"apiVersion":"machine.openshift.io/v1beta1","kind":"Machine","name":"'$NEW_MACHINE_NAME'","namespace":"openshift-machine-api"}}}'
    5. 다음 명령을 실행하여 providerID 값을 새 노드에 패치합니다.

      $ oc patch node $NEW_NODE_NAME --type merge --patch '{"spec":{"providerID":"baremetalhost:///openshift-machine-api/'$NEW_NODE_NAME'/'$BMH_UID'"}}'
    6. 다음 명령을 실행하여 providerID 값을 검토합니다.

      $ oc get node -l node-role.kubernetes.io/control-plane -ojson | jq -r '.items[] | .metadata.name + "  " + .spec.providerID'
  5. 다음 명령을 실행하여 BareMetalHost 오브젝트의 powerOn 상태를 true 로 설정합니다.

    $ oc patch -n openshift-machine-api bmh $NEW_NODE_NAME --subresource status --type json -p '[{"op":"replace","path":"/status/poweredOn","value":true}]'
  6. 다음 명령을 실행하여 BareMetalHost 오브젝트의 powerOn 상태를 검토합니다.

    $ oc get bmh -n openshift-machine-api -ojson | jq -r '.items[] | .metadata.name + "   PoweredOn:" +  (.status.poweredOn | tostring)'
  7. 다음 명령을 실행하여 BareMetalHost 오브젝트의 프로비저닝 상태를 검토합니다.

    $ oc get bmh -n openshift-machine-api -ojson | jq -r '.items[] | .metadata.name + "   ProvisioningState:" +  .status.provisioning.state'
    중요

    프로비저닝 상태가 관리되지 않는 경우 다음 명령을 실행하여 프로비저닝 상태를 변경합니다.

    $ oc patch -n openshift-machine-api bmh $NEW_NODE_NAME --subresource status --type json -p '[{"op":"replace","path":"/status/provisioning/state","value":"unmanaged"}]'
  8. 다음 명령을 실행하여 머신의 상태를 Provisioned 로 설정합니다.

    $ oc patch -n openshift-machine-api machines $NEW_MACHINE_NAME -n openshift-machine-api --subresource status --type json -p '[{"op":"replace","path":"/status/phase","value":"Provisioned"}]'
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

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

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

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

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동