2.4. Bare Metal Operator를 사용하여 사용자 프로비저닝 클러스터 스케일링


사용자가 프로비저닝한 인프라 클러스터를 배포한 후 Bare Metal Operator(BMO) 및 기타 메탈3 구성 요소를 사용하여 클러스터에서 베어 메탈 호스트를 확장할 수 있습니다. 이 접근 방식을 사용하면 사용자 프로비저닝 클러스터를 보다 자동화된 방식으로 확장할 수 있습니다.

Bare Metal Operator(BMO) 및 기타 metal3 구성 요소를 사용하여 사용자 프로비저닝 인프라 클러스터를 확장할 수 있습니다. 사용자 프로비저닝 인프라 설치는 Machine API Operator를 지원하지 않습니다. Machine API Operator는 일반적으로 클러스터에서 베어 메탈 노드의 라이프사이클을 관리합니다. 그러나 BMO 및 기타 메탈3 구성 요소를 사용하여 Machine API Operator 없이도 사용자 프로비저닝 클러스터의 노드를 확장할 수 있습니다.

2.4.1.1. 사용자 프로비저닝 클러스터 스케일링을 위한 사전 요구 사항

  • 베어 메탈에 사용자 프로비저닝 인프라 클러스터가 설치되어 있어야 합니다.
  • 호스트에 대한 BMC(Baseboard Management Controller) 액세스 권한이 있습니다.

2.4.1.2. 사용자 프로비저닝 클러스터 스케일링 제한

  • Bare Metal Operator(BMO)를 사용하여 사용자 프로비저닝 인프라 클러스터를 확장하는 데 provisioning 네트워크를 사용할 수 없습니다.

    • 결과적으로 가상 미디어 네트워킹 부팅을 지원하는 베어 메탈 호스트 드라이버(예: redfish-virtualmediaidrac-virtualmedia )만 사용할 수 있습니다.
  • BMO를 사용하여 사용자 프로비저닝 인프라 클러스터에서 MachineSet 오브젝트를 확장할 수 없습니다.

프로비저닝 사용자 정의 리소스(CR)를 생성하여 사용자가 프로비저닝한 인프라 클러스터에서 Metal 플랫폼 구성 요소를 활성화합니다.

사전 요구 사항

  • 베어 메탈에 사용자 프로비저닝 인프라 클러스터가 설치되어 있어야 합니다.

프로세스

  1. 프로비저닝 CR을 생성합니다.

    1. provisioning.yaml 파일에 다음 YAML을 저장합니다.

      apiVersion: metal3.io/v1alpha1
      kind: Provisioning
      metadata:
        name: provisioning-configuration
      spec:
        provisioningNetwork: "Disabled"
        watchAllNamespaces: false
      Copy to Clipboard Toggle word wrap
      참고

      OpenShift Container Platform 4.19에서는 Bare Metal Operator를 사용하여 사용자 프로비저닝 클러스터를 확장할 때 provisioning 네트워크 활성화를 지원하지 않습니다.

  2. 다음 명령을 실행하여 프로비저닝 CR을 생성합니다.

    $ oc create -f provisioning.yaml
    Copy to Clipboard Toggle word wrap

    출력 예

    provisioning.metal3.io/provisioning-configuration created
    Copy to Clipboard Toggle word wrap

검증

  • 다음 명령을 실행하여 프로비저닝 서비스가 실행 중인지 확인합니다.

    $ oc get pods -n openshift-machine-api
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME                                                  READY   STATUS    RESTARTS        AGE
    cluster-autoscaler-operator-678c476f4c-jjdn5          2/2     Running   0               5d21h
    cluster-baremetal-operator-6866f7b976-gmvgh           2/2     Running   0               5d21h
    control-plane-machine-set-operator-7d8566696c-bh4jz   1/1     Running   0               5d21h
    ironic-proxy-64bdw                                    1/1     Running   0               5d21h
    ironic-proxy-rbggf                                    1/1     Running   0               5d21h
    ironic-proxy-vj54c                                    1/1     Running   0               5d21h
    machine-api-controllers-544d6849d5-tgj9l              7/7     Running   1 (5d21h ago)   5d21h
    machine-api-operator-5c4ff4b86d-6fjmq                 2/2     Running   0               5d21h
    metal3-6d98f84cc8-zn2mx                               5/5     Running   0               5d21h
    metal3-image-customization-59d745768d-bhrp7           1/1     Running   0               5d21h
    Copy to Clipboard Toggle word wrap

BareMetalHost CR(사용자 정의 리소스)을 생성하여 Bare Metal Operator(BMO)를 사용하여 사용자 프로비저닝 클러스터에서 베어 메탈 호스트를 프로비저닝할 수 있습니다.

참고

BMO를 사용하여 클러스터에 베어 메탈 호스트를 프로비저닝하면 BareMetalHost 사용자 정의 리소스의 spec.externallyProvisioned 사양을 기본적으로 false 로 설정합니다. spec.externallyProvisioned 사양을 true 로 설정하지 마십시오. 이 설정으로 인해 예기치 않은 동작이 발생합니다.

사전 요구 사항

  • 사용자가 프로비저닝한 베어 메탈 클러스터를 생성하셨습니다.
  • 호스트에 대한 BMC(Baseboard Management Controller) 액세스 권한이 있습니다.
  • Provisioning CR을 생성하여 클러스터에 프로비저닝 서비스를 배포했습니다.

프로세스

  1. 베어 메탈 노드에 대한 구성 파일을 생성합니다. 정적 구성 또는 DHCP 서버를 사용하는 경우 다음 예제 bmh.yaml 파일 중 하나를 선택하고 사용자 환경과 일치하도록 YAML의 값을 교체하여 필요에 맞게 구성합니다.

    • 정적 구성으로 배포하려면 다음 bmh.yaml 파일을 생성합니다.

      ---
      apiVersion: v1
      kind: Secret
      metadata:
        name: openshift-worker-<num>-network-config-secret 
      1
      
        namespace: openshift-machine-api
      type: Opaque
      stringData:
        nmstate: | 
      2
      
          interfaces: 
      3
      
          - name: <nic1_name> 
      4
      
            type: ethernet
            state: up
            ipv4:
              address:
              - ip: <ip_address> 
      5
      
                prefix-length: 24
              enabled: true
          dns-resolver:
            config:
              server:
              - <dns_ip_address> 
      6
      
          routes:
            config:
            - destination: 0.0.0.0/0
              next-hop-address: <next_hop_ip_address> 
      7
      
              next-hop-interface: <next_hop_nic1_name> 
      8
      
      ---
      apiVersion: v1
      kind: Secret
      metadata:
        name: openshift-worker-<num>-bmc-secret
        namespace: openshift-machine-api
      type: Opaque
      data:
        username: <base64_of_uid> 
      9
      
        password: <base64_of_pwd>
      ---
      apiVersion: metal3.io/v1alpha1
      kind: BareMetalHost
      metadata:
        name: openshift-worker-<num>
        namespace: openshift-machine-api
      spec:
        online: true
        bootMACAddress: <nic1_mac_address> 
      10
      
        bmc:
          address: <protocol>://<bmc_url> 
      11
      
          credentialsName: openshift-worker-<num>-bmc-secret
          disableCertificateVerification: false
        customDeploy:
          method: install_coreos
        userData:
          name: worker-user-data-managed
          namespace: openshift-machine-api
        rootDeviceHints:
          deviceName: <root_device_hint> 
      12
      
        preprovisioningNetworkDataName: openshift-worker-<num>-network-config-secret
      Copy to Clipboard Toggle word wrap
      1
      < num >의 모든 인스턴스를 이름,credentialsName, preprovisioningNetworkDataName 필드의 베어 메탈 노드의 고유한 컴퓨팅 노드 번호로 바꿉니다.
      2
      NMState YAML 구문을 추가하여 호스트 인터페이스를 구성합니다. 새로 생성된 노드의 네트워크 인터페이스를 구성하려면 네트워크 구성이 있는 시크릿의 이름을 지정합니다. nmstate 구문을 따라 노드의 네트워크 구성을 정의합니다. NMState 구문 구성에 대한 자세한 내용은 " 베어 메탈 노드 준비"를 참조하십시오.
      3
      선택 사항: nmstate 를 사용하여 네트워크 인터페이스를 구성하고 인터페이스를 비활성화하려면 IP 주소가 enabled: false 로 설정된 state: up 을 설정합니다.
      4
      & lt;nic1_name >을 베어 메탈 노드의 첫 번째 NIC(네트워크 인터페이스 컨트롤러) 이름으로 바꿉니다.
      5
      & lt;ip_address >를 베어 메탈 노드 NIC의 IP 주소로 바꿉니다.
      6
      & lt;dns_ip_address >를 베어 메탈 노드의 DNS 확인자의 IP 주소로 바꿉니다.
      7
      & lt;next_hop_ip_address >를 베어 메탈 노드의 외부 게이트웨이의 IP 주소로 바꿉니다.
      8
      & lt;next_hop_nic1_name >을 베어 메탈 노드의 외부 게이트웨이 이름으로 바꿉니다.
      9
      < base64_of_uid > 및 < base64_of_pwd >를 사용자 이름과 암호의 base64 문자열로 바꿉니다.
      10
      <NIC1-mac-address>를 베어 메탈 노드의 첫 번째 NIC의 MAC 주소로 바꿉니다. 추가 BMC 구성 옵션은 BMC 주소 지정 섹션을 참조하십시오.
      11
      <protocol>을 IPMI, RedFish 또는 기타와 같은 BMC 프로토콜로 바꿉니다. & lt;bmc_url >을 베어 메탈 노드의 베이스 보드 관리 컨트롤러의 URL로 바꿉니다.
      12
      선택 사항: 루트 장치 힌트를 지정할 때 <root_device_hint >를 장치 경로로 바꿉니다. 자세한 내용은 "Root device hints"를 참조하십시오.
    • nmstate를 사용하여 정적 구성으로 네트워크 인터페이스를 구성하는 경우 IP 주소를 enabled: false 로 설정하고 state: up을 설정합니다.

      ---
      apiVersion: v1
      kind: Secret
      metadata:
        name: openshift-worker-<num>-network-config-secret
        namespace: openshift-machine-api
       # ...
      interfaces:
        - name: <nic_name>
          type: ethernet
          state: up
          ipv4:
            enabled: false
          ipv6:
            enabled: false
      # ...
      Copy to Clipboard Toggle word wrap
    • DHCP 구성으로 배포하려면 다음 bmh.yaml 파일을 생성합니다.

      ---
      apiVersion: v1
      kind: Secret
      metadata:
        name: openshift-worker-<num>-bmc-secret 
      1
      
        namespace: openshift-machine-api
      type: Opaque
      data:
        username: <base64_of_uid> 
      2
      
        password: <base64_of_pwd>
      ---
      apiVersion: metal3.io/v1alpha1
      kind: BareMetalHost
      metadata:
        name: openshift-worker-<num>
        namespace: openshift-machine-api
      spec:
        online: true
        bootMACAddress: <nic1_mac_address> 
      3
      
        bmc:
          address: <protocol>://<bmc_url> 
      4
      
          credentialsName: openshift-worker-<num>-bmc
          disableCertificateVerification: false
        customDeploy:
          method: install_coreos
        userData:
          name: worker-user-data-managed
          namespace: openshift-machine-api
        rootDeviceHints:
          deviceName: <root_device_hint> 
      5
      Copy to Clipboard Toggle word wrap
      1
      namecredentialsName 필드에서 < num >을 베어 메탈 노드의 고유한 컴퓨팅 노드 번호로 바꿉니다.
      2
      < base64_of_uid > 및 < base64_of_pwd >를 사용자 이름과 암호의 base64 문자열로 바꿉니다.
      3
      <NIC1-mac-address>를 베어 메탈 노드의 첫 번째 NIC의 MAC 주소로 바꿉니다. 추가 BMC 구성 옵션은 BMC 주소 지정 섹션을 참조하십시오.
      4
      <protocol>을 IPMI, RedFish 또는 기타와 같은 BMC 프로토콜로 바꿉니다. & lt;bmc_url >을 베어 메탈 노드의 베이스 보드 관리 컨트롤러의 URL로 바꿉니다.
      5
      선택 사항: 루트 장치 힌트를 지정할 때 <root_device_hint >를 장치 경로로 바꿉니다. 자세한 내용은 "Root device hints"를 참조하십시오.
      중요

      기존 베어 메탈 노드의 MAC 주소가 프로비저닝하려는 베어 메탈 호스트의 MAC 주소와 일치하면 Ironic 설치가 실패합니다. 호스트 등록, 검사, 정리 또는 기타 Ironic 단계가 실패하면 Bare Metal Operator에서 설치를 지속적으로 다시 시도합니다. 자세한 내용은 "클러스터의 새 호스트를 프로비저닝할 때 중복된 MAC 주소 진단"을 참조하십시오.

  2. 다음 명령을 실행하여 베어 메탈 노드를 생성합니다.

    $ oc create -f bmh.yaml
    Copy to Clipboard Toggle word wrap

    출력 예

    secret/openshift-worker-<num>-network-config-secret created
    secret/openshift-worker-<num>-bmc-secret created
    baremetalhost.metal3.io/openshift-worker-<num> created
    Copy to Clipboard Toggle word wrap

  3. 다음 명령을 실행하여 베어 메탈 노드를 검사합니다.

    $ oc -n openshift-machine-api get bmh openshift-worker-<num>
    Copy to Clipboard Toggle word wrap

    다음과 같습니다.

    num

    컴퓨팅 노드 번호를 지정합니다.

    출력 예

    NAME                    STATE       CONSUMER   ONLINE   ERROR
    openshift-worker-<num>  provisioned true
    Copy to Clipboard Toggle word wrap

  4. 모든 CSR(인증서 서명 요청)을 승인합니다.

    1. 다음 명령을 실행하여 보류 중인 CSR 목록을 가져옵니다.

      $ oc get csr
      Copy to Clipboard Toggle word wrap

      출력 예

      NAME        AGE   SIGNERNAME                                    REQUESTOR                                         REQUESTEDDURATION CONDITION
      csr-gfm9f   33s   kubernetes.io/kube-apiserver-client-kubelet   system:serviceaccount:openshift-machine-config-o
      perator:node-bootstrapper   <none>              Pending
      Copy to Clipboard Toggle word wrap

    2. 다음 명령을 실행하여 CSR을 승인합니다.

      $ oc adm certificate approve <csr_name>
      Copy to Clipboard Toggle word wrap

      출력 예

      certificatesigningrequest.certificates.k8s.io/<csr_name> approved
      Copy to Clipboard Toggle word wrap

검증

  • 다음 명령을 실행하여 노드가 준비되었는지 확인합니다.

    $ oc get nodes
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME        STATUS   ROLES           AGE     VERSION
    app1        Ready    worker          47s     v1.24.0+dc5a2fd
    controller1 Ready    master,worker   2d22h   v1.24.0+dc5a2fd
    Copy to Clipboard Toggle word wrap

필요한 경우 Bare Metal Operator (BMO)를 사용하여 기존 호스트의 BareMetalHost 오브젝트를 생성하여 사용자 프로비저닝 클러스터에서 기존 베어 메탈 컨트롤러 호스트를 관리할 수 있습니다. 기존 사용자 프로비저닝 호스트를 관리할 필요는 없지만 인벤토리를 위해 외부 프로비저닝 호스트로 등록할 수 있습니다.

중요

BMO를 사용하여 기존 호스트를 관리하려면 BMO가 호스트를 다시 프로비저닝하지 못하도록 BareMetalHost 사용자 정의 리소스에서 spec.externallyProvisioned 사양을 true 로 설정해야 합니다.

사전 요구 사항

  • 사용자가 프로비저닝한 베어 메탈 클러스터를 생성하셨습니다.
  • 호스트에 대한 BMC(Baseboard Management Controller) 액세스 권한이 있습니다.
  • Provisioning CR을 생성하여 클러스터에 프로비저닝 서비스를 배포했습니다.

프로세스

  1. Secret CR 및 BareMetalHost CR을 생성합니다.

    1. 다음 YAML을 controller.yaml 파일에 저장합니다.

      ---
      apiVersion: v1
      kind: Secret
      metadata:
        name: controller1-bmc
        namespace: openshift-machine-api
      type: Opaque
      data:
        username: <base64_of_uid>
        password: <base64_of_pwd>
      ---
      apiVersion: metal3.io/v1alpha1
      kind: BareMetalHost
      metadata:
        name: controller1
        namespace: openshift-machine-api
      spec:
        bmc:
          address: <protocol>://<bmc_url> 
      1
      
          credentialsName: "controller1-bmc"
        bootMACAddress: <nic1_mac_address>
        customDeploy:
          method: install_coreos
        externallyProvisioned: true 
      2
      
        online: true
        userData:
          name: controller-user-data-managed
          namespace: openshift-machine-api
      Copy to Clipboard Toggle word wrap
      1
      가상 미디어 네트워킹 부팅을 지원하는 베어 메탈 호스트 드라이버(예: redfish-virtualmediaidrac-virtualmedia )만 사용할 수 있습니다.
      2
      BMO가 베어 메탈 컨트롤러 호스트를 다시 프로비저닝하지 못하도록 값을 true로 설정해야 합니다.
  2. 다음 명령을 실행하여 베어 메탈 호스트 오브젝트를 생성합니다.

    $ oc create -f controller.yaml
    Copy to Clipboard Toggle word wrap

    출력 예

    secret/controller1-bmc created
    baremetalhost.metal3.io/controller1 created
    Copy to Clipboard Toggle word wrap

검증

  • 다음 명령을 실행하여 BMO에서 베어 메탈 호스트 오브젝트를 생성했는지 확인합니다.

    $ oc get bmh -A
    Copy to Clipboard Toggle word wrap

    출력 예

    NAMESPACE               NAME          STATE                    CONSUMER   ONLINE   ERROR   AGE
    openshift-machine-api   controller1   externally provisioned              true             13s
    Copy to Clipboard Toggle word wrap

2.4.5. BMO를 사용하여 사용자 프로비저닝 클러스터에서 호스트 제거

Bare Metal Operator(BMO)를 사용하여 사용자 프로비저닝 클러스터에서 베어 메탈 호스트를 제거할 수 있습니다.

사전 요구 사항

  • 사용자가 프로비저닝한 베어 메탈 클러스터를 생성하셨습니다.
  • 호스트에 대한 BMC(Baseboard Management Controller) 액세스 권한이 있습니다.
  • Provisioning CR을 생성하여 클러스터에 프로비저닝 서비스를 배포했습니다.

프로세스

  1. 다음 명령을 실행하여 노드를 차단하고 드레이닝합니다.

    $ oc adm drain app1 --force --ignore-daemonsets=true
    Copy to Clipboard Toggle word wrap

    출력 예

    node/app1 cordoned
    WARNING: ignoring DaemonSet-managed Pods: openshift-cluster-node-tuning-operator/tuned-tvthg, openshift-dns/dns-
    default-9q6rz, openshift-dns/node-resolver-zvt42, openshift-image-registry/node-ca-mzxth, openshift-ingress-cana
    ry/ingress-canary-qq5lf, openshift-machine-config-operator/machine-config-daemon-v79dm, openshift-monitoring/nod
    e-exporter-2vn59, openshift-multus/multus-additional-cni-plugins-wssvj, openshift-multus/multus-fn8tg, openshift
    -multus/network-metrics-daemon-5qv55, openshift-network-diagnostics/network-check-target-jqxn2, openshift-ovn-ku
    bernetes/ovnkube-node-rsvqg
    evicting pod openshift-operator-lifecycle-manager/collect-profiles-27766965-258vp
    evicting pod openshift-operator-lifecycle-manager/collect-profiles-27766950-kg5mk
    evicting pod openshift-operator-lifecycle-manager/collect-profiles-27766935-stf4s
    pod/collect-profiles-27766965-258vp evicted
    pod/collect-profiles-27766950-kg5mk evicted
    pod/collect-profiles-27766935-stf4s evicted
    node/app1 drained
    Copy to Clipboard Toggle word wrap

  2. BareMetalHost CR에서 customDeploy 사양을 삭제합니다.

    1. 다음 명령을 실행하여 호스트의 BareMetalHost CR을 편집합니다.

      $ oc edit bmh -n openshift-machine-api <host_name>
      Copy to Clipboard Toggle word wrap
    2. spec.customDeployspec.customDeploy.method 행을 삭제합니다.

      ...
        customDeploy:
          method: install_coreos
      Copy to Clipboard Toggle word wrap
    3. 다음 명령을 실행하여 호스트의 프로비저닝 상태가 프로비저닝 해제 로 변경되는지 확인합니다.

      $ oc get bmh -A
      Copy to Clipboard Toggle word wrap

      출력 예

      NAMESPACE               NAME          STATE                    CONSUMER   ONLINE   ERROR   AGE
      openshift-machine-api   controller1   externally provisioned              true             58m
      openshift-machine-api   worker1       deprovisioning                      true             57m
      Copy to Clipboard Toggle word wrap

  3. BareMetalHost 상태가 available 로 변경될 때 다음 명령을 실행하여 호스트를 삭제합니다.

    $ oc delete bmh -n openshift-machine-api <bmh_name>
    Copy to Clipboard Toggle word wrap
    참고

    BareMetalHost CR을 편집하지 않고도 이 단계를 실행할 수 있습니다. BareMetalHost 상태가 프로비저닝 해제 에서 available 로 변경되는 데 다소 시간이 걸릴 수 있습니다.

  4. 다음 명령을 실행하여 노드를 삭제합니다.

    $ oc delete node <node_name>
    Copy to Clipboard Toggle word wrap

검증

  • 다음 명령을 실행하여 노드를 삭제했는지 확인합니다.

    $ oc get nodes
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME          STATUS   ROLES           AGE     VERSION
    controller1   Ready    master,worker   2d23h   v1.24.0+dc5a2fd
    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