13.5. 클러스터 확장

설치 관리자 프로비저닝 OpenShift Container Platform 클러스터를 배포한 후 다음 절차를 사용하여 작업자 노드 수를 확장할 수 있습니다. 가능한 각 작업자 노드가 사전 요구 사항을 충족하는지 확인합니다.

참고

RedFish Virtual Media를 사용하여 클러스터를 구성하려면 최소 펌웨어 요구 사항을 충족해야 합니다. RedFish Virtual Media를 사용하여 클러스터를 설정할 때 추가 세부 사항은 사전 요구 사항 섹션에서 가상 미디어를 사용하여 설치를 위한 펌웨어 요구 사항을 참조하십시오.

13.5.1. 베어 메탈 노드 준비

클러스터를 확장하려면 DHCP 서버가 필요합니다. 각 노드에는 DHCP 예약이 있어야 합니다.

고정 IP 주소가 되도록 IP 주소 예약

일부 관리자는 각 노드의 IP 주소가 DHCP 서버에서 일정하게 유지되도록 고정 IP 주소를 사용하는 것을 선호합니다. NMState를 사용하여 고정 IP 주소를 구성하려면 추가 세부 사항은 "(선택 사항) install-config.yaml 파일에서 호스트 네트워크 인터페이스 구성을 참조하십시오.

베어 메탈 노드를 준비하려면 프로비저너 노드에서 다음 절차를 실행해야 합니다.

프로세스

  1. 필요한 경우 oc 바이너리를 가져옵니다. 이는 이미 프로비저너 노드에 있어야 합니다.

    $ curl -s https://mirror.openshift.com/pub/openshift-v4/clients/ocp/$VERSION/openshift-client-linux-$VERSION.tar.gz | tar zxvf - oc
    $ sudo cp oc /usr/local/bin
  2. BMC(Baseboard Management Controller)를 사용하여 베어 메탈 노드의 전원을 끄고 해제되었는지 확인합니다.
  3. 베어 메탈 노드의 베이스 보드 관리 컨트롤러의 사용자 이름 및 암호를 검색합니다. 그런 다음 사용자 이름과 암호에서 base64 문자열을 생성합니다.

    $ echo -ne "root" | base64
    $ echo -ne "password" | base64
  4. 베어 메탈 노드에 대한 구성 파일을 생성합니다.

    $ vim bmh.yaml
    apiVersion: v1
    kind: Secret
    metadata:
      name: openshift-worker-<num>-network-config-secret 1 2
    type: Opaque
    stringData:
     nmstate: |
       routes:
         config:
         - destination: 0.0.0.0/0
           next-hop-address: 192.168.123.1
           next-hop-interface: enp0s4
       dns-resolver:
         config:
           server:
           - 192.168.123.1
       interfaces:
       - name: enp0s4
         state: up
         ipv4:
           address:
           - ip: 192.168.123.16
             prefix-length: 24
           enabled: true
           dhcp: false
    ---
    apiVersion: v1
    kind: Secret
    metadata:
      name: openshift-worker-<num>-bmc-secret 3
      namespace: openshift-machine-api
    type: Opaque
    data:
      username: <base64-of-uid> 4
      password: <base64-of-pwd> 5
    ---
    apiVersion: metal3.io/v1alpha1
    kind: BareMetalHost
    metadata:
      name: openshift-worker-<num> 6
      namespace: openshift-machine-api
    spec:
      online: true
      bootMACAddress: <NIC1-mac-address> 7
      bmc:
        address: <protocol>://<bmc-ip> 8
        credentialsName: openshift-worker-<num>-bmc-secret 9
        disableCertificateVerification: true 10
        username: <bmc-username> 11
        password: <bmc-password> 12
      preprovisioningNetworkDataName: openshift-worker-<num>-network-config-secret 13 14
    1
    선택 사항: 새로 생성된 노드의 네트워크를 구성하려면 네트워크 구성이 포함된 시크릿 이름을 지정합니다. nmstate 구문을 따라 노드의 네트워크 구성을 정의합니다.
    2 3 6 9 14
    name 필드에서 베어 메탈 노드의 작업자 번호, credentialsName 필드 및 사전 provisioningNetworkDataName 필드로 < num >을 바꿉니다.
    4
    <base64-of-uid>를 사용자 이름의 base64 문자열로 바꿉니다.
    5
    <base64-of-pwd>를 암호의 base64 문자열로 바꿉니다.
    7
    <NIC1-mac-address>를 베어 메탈 노드의 첫 번째 NIC의 MAC 주소로 바꿉니다. 추가 BMC 구성 옵션은 "BMC 주소 지정" 섹션을 참조하십시오.
    8
    <protocol>을 IPMI, RedFish 또는 기타와 같은 BMC 프로토콜로 바꿉니다. <bmc-ip>를 베어 메탈 노드의 베이스 보드 관리 컨트롤러의 IP 주소로 바꿉니다.
    10
    인증서 검증을 건너뛰려면 disableCertificateVerificationtrue 로 설정합니다.
    11
    & lt;bmc-username >을 사용자 이름의 bmc 문자열로 바꿉니다.
    12
    & lt;bmc-password& gt;를 암호의 bmc 문자열로 바꿉니다.
    13
    선택 사항: 새로 생성된 노드의 네트워크를 구성한 경우 BareMetalHost CR의 사전 provisioningNetworkDataName 에 네트워크 구성 시크릿 이름을 제공합니다.
    참고

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

  5. 베어 메탈 노드를 생성합니다.

    $ oc -n openshift-machine-api create -f bmh.yaml

    출력 예

    secret/openshift-worker-<num>-network-config-secret created
    secret/openshift-worker-<num>-bmc-secret created
    baremetalhost.metal3.io/openshift-worker-<num> created

    여기서 <num>은 작업자 번호입니다.

  6. 베어 메탈 노드의 전원을 켜고 검사합니다.

    $ oc -n openshift-machine-api get bmh openshift-worker-<num>

    여기서 <num>은 작업자 노드 번호입니다.

    출력 예

    NAME                    STATE       CONSUMER   ONLINE   ERROR
    openshift-worker-<num>  available              true

    참고

    작업자 노드가 클러스터에 참여할 수 있도록 하려면 machineset 오브젝트를 BareMetalHost 오브젝트의 수로 스케일링합니다. 수동 또는 자동으로 노드를 확장할 수 있습니다. 노드를 자동으로 확장하려면 머신 세트에 대한 metal3.io/autoscale-to-hosts 주석을 사용합니다.