11.2. OpenShift Container Platform 설치를 위한 환경 설정

11.2.1. IBM Cloud에 OpenShift Container Platform 설치를 위한 프로비저너 노드 준비

다음 단계를 수행하여 프로비저너 노드를 준비합니다.

프로세스

  1. ssh를 통해 프로비저너 노드에 로그인합니다.
  2. root가 아닌 사용자 (kni)를 만들고 해당 사용자에게 sudo 권한을 부여합니다.

    # useradd kni
    # passwd kni
    # echo "kni ALL=(root) NOPASSWD:ALL" | tee -a /etc/sudoers.d/kni
    # chmod 0440 /etc/sudoers.d/kni
  3. 새 사용자에 대한 ssh 키를 만듭니다.

    # su - kni -c "ssh-keygen -f /home/kni/.ssh/id_rsa -N ''"
  4. 프로비저너 노드에서 새 사용자로 로그인합니다.

    # su - kni
  5. Red Hat Subscription Manager를 사용하여 프로비저닝 노드를 등록합니다.

    $ sudo subscription-manager register --username=<user> --password=<pass> --auto-attach
    $ sudo subscription-manager repos --enable=rhel-8-for-x86_64-appstream-rpms \
                                      --enable=rhel-8-for-x86_64-baseos-rpms
    참고

    Red Hat Subscription Manager에 대한 자세한 내용은 Using and Configuring Red Hat Subscription Manager에서 참조하십시오.

  6. 다음 패키지를 설치합니다.

    $ sudo dnf install -y libvirt qemu-kvm mkisofs python3-devel jq ipmitool
  7. 사용자를 변경하여 libvirt 그룹을 새로 만든 사용자에 추가합니다.

    $ sudo usermod --append --groups libvirt kni
  8. firewalld 시작 :

    $ sudo systemctl start firewalld
  9. firewalld 활성화 :

    $ sudo systemctl enable firewalld
  10. http 서비스를 시작합니다.

    $ sudo firewall-cmd --zone=public --add-service=http --permanent
    $ sudo firewall-cmd --reload
  11. libvirtd 서비스를 시작하고 활성화합니다.

    $ sudo systemctl enable libvirtd --now
  12. 프로비저너 노드의 ID를 설정합니다.

    $ PRVN_HOST_ID=<ID>

    다음 ibmcloud 명령을 사용하여 ID를 볼 수 있습니다.

    $ ibmcloud sl hardware list
  13. 공용 서브넷의 ID를 설정합니다.

    $ PUBLICSUBNETID=<ID>

    다음 ibmcloud 명령을 사용하여 ID를 볼 수 있습니다.

    $ ibmcloud sl subnet list
  14. 사설 서브넷의 ID를 설정합니다.

    $ PRIVSUBNETID=<ID>

    다음 ibmcloud 명령을 사용하여 ID를 볼 수 있습니다.

    $ ibmcloud sl subnet list
  15. 프로비저너 노드 공용 IP 주소를 설정합니다.

    $ PRVN_PUB_IP=$(ibmcloud sl hardware detail $PRVN_HOST_ID --output JSON | jq .primaryIpAddress -r)
  16. 공용 네트워크의 CIDR을 설정합니다.

    $ PUBLICCIDR=$(ibmcloud sl subnet detail $PUBLICSUBNETID --output JSON | jq .cidr)
  17. 공용 네트워크의 IP 주소 및 CIDR을 설정합니다.

    $ PUB_IP_CIDR=$PRVN_PUB_IP/$PUBLICCIDR
  18. public 네트워크의 게이트웨이를 설정합니다.

    $ PUB_GATEWAY=$(ibmcloud sl subnet detail $PUBLICSUBNETID --output JSON | jq .gateway -r)
  19. 프로비저너 노드의 개인 IP 주소를 설정합니다.

    $ PRVN_PRIV_IP=$(ibmcloud sl hardware detail $PRVN_HOST_ID --output JSON | \
                     jq .primaryBackendIpAddress -r)
  20. 사설 네트워크의 CIDR을 설정합니다.

    $ PRIVCIDR=$(ibmcloud sl subnet detail $PRIVSUBNETID --output JSON | jq .cidr)
  21. 사설 네트워크의 IP 주소 및 CIDR을 설정합니다.

    $ PRIV_IP_CIDR=$PRVN_PRIV_IP/$PRIVCIDR
  22. 사설 네트워크의 게이트웨이를 설정합니다.

    $ PRIV_GATEWAY=$(ibmcloud sl subnet detail $PRIVSUBNETID --output JSON | jq .gateway -r)
  23. baremetalprovisioning 네트워크의 브리지를 설정합니다.

    $ sudo nohup bash -c "
        nmcli --get-values UUID con show | xargs -n 1 nmcli con delete
        nmcli connection add ifname provisioning type bridge con-name provisioning
        nmcli con add type bridge-slave ifname eth1 master provisioning
        nmcli connection add ifname baremetal type bridge con-name baremetal
        nmcli con add type bridge-slave ifname eth2 master baremetal
        nmcli connection modify baremetal ipv4.addresses $PUB_IP_CIDR ipv4.method manual ipv4.gateway $PUB_GATEWAY
        nmcli connection modify provisioning ipv4.addresses 172.22.0.1/24,$PRIV_IP_CIDR ipv4.method manual
        nmcli connection modify provisioning +ipv4.routes \"10.0.0.0/8 $PRIV_GATEWAY\"
        nmcli con down baremetal
        nmcli con up baremetal
        nmcli con down provisioning
        nmcli con up provisioning
        init 6
    "
    참고

    필요에 따라 eth1eth2 의 경우 적절한 인터페이스 이름을 대체합니다.

  24. 필요한 경우 provisioner 노드로 다시 SSH 연결을 수행합니다.

    # ssh kni@provisioner.<cluster-name>.<domain>
  25. 연결 브리지가 올바르게 생성되었는지 확인합니다.

    $ sudo nmcli con show

    출력 예

    NAME               UUID                                  TYPE      DEVICE
    baremetal          4d5133a5-8351-4bb9-bfd4-3af264801530  bridge    baremetal
    provisioning       43942805-017f-4d7d-a2c2-7cb3324482ed  bridge    provisioning
    virbr0             d9bca40f-eee1-410b-8879-a2d4bb0465e7  bridge    virbr0
    bridge-slave-eth1  76a8ed50-c7e5-4999-b4f6-6d9014dd0812  ethernet  eth1
    bridge-slave-eth2  f31c3353-54b7-48de-893a-02d2b34c4736  ethernet  eth2

  26. pull-secret.txt 파일을 생성합니다.

    $ vim pull-secret.txt

    웹 브라우저에서 Install on Bare Metal with user-provisioned infrastructure 로 이동합니다. 1단계에서 Download pull secret(pull secret 다운로드 )을 클릭합니다. pull-secret.txt 파일에 내용을 붙여 넣고 kni 사용자의 홈 디렉터리에 저장합니다.

11.2.2. 공용 서브넷 구성

모든 OpenShift Container Platform 클러스터 노드는 퍼블릭 서브넷에 있어야 합니다. IBM Cloud®는 서브넷에 DHCP 서버를 제공하지 않습니다. 프로비저너 노드에서 별도로 설정합니다.

프로비저너 노드를 준비할 때 정의된 BASH 변수를 재설정해야 합니다. 준비 후 프로비저너 노드를 재부팅하면 이전에 설정한 BASH 변수가 삭제됩니다.

프로세스

  1. dnsmasq 를 설치하십시오 :

    $ sudo dnf install dnsmasq
  2. dnsmasq 구성 파일을 엽니다.

    $ sudo vi /etc/dnsmasq.conf
  3. dnsmasq 구성 파일에 다음 구성을 추가합니다.

    interface=baremetal
    except-interface=lo
    bind-dynamic
    log-dhcp
    
    dhcp-range=<ip_addr>,<ip_addr>,<pub_cidr> 1
    dhcp-option=baremetal,121,0.0.0.0/0,<pub_gateway>,<prvn_priv_ip>,<prvn_pub_ip> 2
    
    dhcp-hostsfile=/var/lib/dnsmasq/dnsmasq.hostsfile
    1
    DHCP 범위를 설정합니다. baremetal 네트워크의 dhcp-range 가 동일한 IP 주소로 시작되고 종료되도록 <ip_addr> 의 두 인스턴스를 공용 서브넷에서 사용하지 않는 IP 주소로 바꿉니다. <pub_cidr> 을 공용 서브넷의 CIDR로 바꿉니다.
    2
    DHCP 옵션을 설정합니다. <pub_gateway>baremetal 네트워크의 게이트웨이 IP 주소로 바꿉니다. <prvn_priv_ip> 를 provisioning 네트워크의 프로비저너 노드 개인 IP 주소의 IP 주소로 바꿉니다 . <prvn_pub_ip>baremetal 네트워크에 있는 프로비저너 노드의 공용 IP 주소의 IP 주소로 바꿉니다.

    <pub_cidr> 값을 검색하려면 다음을 실행합니다.

    $ ibmcloud sl subnet detail <publicsubnetid> --output JSON | jq .cidr

    <publicsubnetid> 를 공용 서브넷의 ID로 바꿉니다.

    <pub_gateway> 값을 검색하려면 다음을 실행합니다.

    $ ibmcloud sl subnet detail <publicsubnetid> --output JSON | jq .gateway -r

    <publicsubnetid> 를 공용 서브넷의 ID로 바꿉니다.

    <prvn_priv_ip> 값을 검색하려면 다음을 실행합니다.

    $ ibmcloud  sl hardware detail <id> --output JSON | \
                jq .primaryBackendIpAddress -r

    <id> 를 프로비저너 노드의 ID로 바꿉니다.

    <prvn_pub_ip> 값을 검색하려면 다음을 실행합니다.

    $ ibmcloud sl hardware detail <id> --output JSON | jq .primaryIpAddress -r

    <id> 를 프로비저너 노드의 ID로 바꿉니다.

  4. 클러스터의 하드웨어 목록을 가져옵니다.

    $ ibmcloud sl hardware list
  5. 각 노드의 MAC 주소 및 IP 주소를 가져옵니다.

    $ ibmcloud sl hardware detail <id> --output JSON | \
      jq '.networkComponents[] | \
      "\(.primaryIpAddress) \(.macAddress)"' | grep -v null

    <id> 를 노드 ID로 바꿉니다.

    출력 예

    "10.196.130.144 00:e0:ed:6a:ca:b4"
    "141.125.65.215 00:e0:ed:6a:ca:b5"

    공용 네트워크의 MAC 주소와 IP 주소를 기록합니다. 나중에 install-config.yaml 파일에서 사용할 사설 네트워크의 MAC 주소를 별도로 기록합니다. 공용 베어 메탈 네트워크의 모든 공용 MAC 및 IP 주소 및 개인 프로비저닝 네트워크의 MAC 주소가 있을 때까지 각 노드에 대해 이 절차를 반복합니다.

  6. 각 노드의 공용 baremetal 네트워크의 MAC 및 IP 주소 쌍을 dnsmasq.hostsfile 파일에 추가합니다.

    $ sudo vim /var/lib/dnsmasq/dnsmasq.hostsfile

    입력 예

    00:e0:ed:6a:ca:b5,141.125.65.215,master-0
    <mac>,<ip>,master-1
    <mac>,<ip>,master-2
    <mac>,<ip>,worker-0
    <mac>,<ip>,worker-1
    ...

    <mac>,<ip> 를 해당 노드 이름의 공용 MAC 주소 및 공용 IP 주소로 바꿉니다.

  7. dnsmasq 시작 :

    $ sudo systemctl start dnsmasq
  8. 노드를 부팅할 때 시작되도록 dnsmasq 를 활성화합니다.

    $ sudo systemctl enable dnsmasq
  9. dnsmasq 가 실행 중인지 확인합니다.

    $ sudo systemctl status dnsmasq

    출력 예

    ● dnsmasq.service - DNS caching server.
    Loaded: loaded (/usr/lib/systemd/system/dnsmasq.service; enabled; vendor preset: disabled)
    Active: active (running) since Tue 2021-10-05 05:04:14 CDT; 49s ago
    Main PID: 3101 (dnsmasq)
    Tasks: 1 (limit: 204038)
    Memory: 732.0K
    CGroup: /system.slice/dnsmasq.service
    └─3101 /usr/sbin/dnsmasq -k

  10. UDP 프로토콜로 포트 5367 을 엽니다.

    $ sudo firewall-cmd --add-port 53/udp --permanent
    $ sudo firewall-cmd --add-port 67/udp --permanent
  11. masquerade를 사용하여 외부 영역에 프로비저닝 을 추가합니다.

    $ sudo firewall-cmd --change-zone=provisioning --zone=external --permanent

    이 단계에서는 관리 서브넷에 대한 IPMI 호출에 대한 네트워크 주소 변환을 수행합니다.

  12. firewalld 구성을 다시 로드합니다.

    $ sudo firewall-cmd --reload

11.2.3. OpenShift Container Platform 설치 프로그램 검색

설치 프로그램의 stable-4.x 버전을 사용하여 일반적으로 사용 가능한 안정적인 OpenShift Container Platform 버전을 배포합니다.

$ export VERSION=stable-4.9
export RELEASE_IMAGE=$(curl -s https://mirror.openshift.com/pub/openshift-v4/clients/ocp/$VERSION/release.txt | grep 'Pull From: quay.io' | awk -F ' ' '{print $3}')

11.2.4. OpenShift Container Platform 설치 프로그램 추출

설치 프로그램을 가져온 후 다음 단계로 압축을 풉니다.

절차

  1. 환경 변수를 설정합니다.

    $ export cmd=openshift-baremetal-install
    $ export pullsecret_file=~/pull-secret.txt
    $ export extract_dir=$(pwd)
  2. oc 바이너리를 가져옵니다.

    $ curl -s https://mirror.openshift.com/pub/openshift-v4/clients/ocp/$VERSION/openshift-client-linux.tar.gz | tar zxvf - oc
  3. 설치 프로그램 압축을 풉니다.

    $ sudo cp oc /usr/local/bin
    $ oc adm release extract --registry-config "${pullsecret_file}" --command=$cmd --to "${extract_dir}" ${RELEASE_IMAGE}
    $ sudo cp openshift-baremetal-install /usr/local/bin

11.2.5. install-config.yaml 파일 구성

install-config.yaml 파일에는 몇 가지 추가 정보가 필요합니다. 대부분의 정보는 사용 가능한 IBM Cloud® 하드웨어에 대해 설치 프로그램 및 결과 클러스터에 충분한 정보를 제공하여 이를 완전히 관리할 수 있도록 하는 것입니다. 베어 메탈에 설치하고 IBM Cloud에 설치하는 것과 중요한 차이점은 install-config.yaml 파일의 BMC 섹션에서 IPMI의 권한 수준을 명시적으로 설정해야 한다는 것입니다.

절차

  1. install-config.yaml을 설정합니다. pullSecretsshKey 등 환경에 맞게 적절한 변수를 변경합니다.

    apiVersion: v1
    baseDomain: <domain>
    metadata:
      name: <cluster_name>
    networking:
      machineNetwork:
      - cidr: <public-cidr>
      networkType: OVNKubernetes
    compute:
    - name: worker
      replicas: 2
    controlPlane:
      name: master
      replicas: 3
      platform:
        baremetal: {}
    platform:
      baremetal:
        apiVIP: <api_ip>
        ingressVIP: <wildcard_ip>
        provisioningNetworkInterface: <NIC1>
        provisioningNetworkCIDR: <CIDR>
        hosts:
          - name: openshift-master-0
            role: master
            bmc:
              address: ipmi://10.196.130.145?privilegelevel=OPERATOR 1
              username: root
              password: <password>
            bootMACAddress: 00:e0:ed:6a:ca:b4 2
            rootDeviceHints:
              deviceName: "/dev/sda"
          - name: openshift-worker-0
            role: worker
            bmc:
              address: ipmi://<out-of-band-ip>?privilegelevel=OPERATOR 3
              username: <user>
              password: <password>
            bootMACAddress: <NIC1_mac_address> 4
            rootDeviceHints:
              deviceName: "/dev/sda"
    pullSecret: '<pull_secret>'
    sshKey: '<ssh_pub_key>'
    1 3
    The bmc.addressOPERATOR 로 설정된 값이 있는 권한 수준 구성 설정을 제공합니다. 이는 IBM Cloud에 필요합니다.
    2 4
    해당 노드에 대한 개인 프로비저닝 네트워크 NIC의 MAC 주소를 추가합니다.
    참고

    ibmcloud 명령줄 유틸리티를 사용하여 암호를 검색할 수 있습니다.

    $ ibmcloud sl hardware detail <id> --output JSON | \
      jq '"(.networkManagementIpAddress) (.remoteManagementAccounts[0].password)"'

    <id> 를 노드 ID로 바꿉니다.

  2. 클러스터 구성을 저장할 디렉터리를 생성합니다.

    $ mkdir ~/clusterconfigs
  3. install-config.yaml 파일을 디렉터리에 복사합니다.

    $ cp install-config.yaml ~/clusterconfig
  4. OpenShift Container Platform 클러스터를 설치하기 전에 모든 베어 메탈 노드의 전원이 꺼져 있는지 확인합니다.

    $ ipmitool -I lanplus -U <user> -P <password> -H <management_server_ip> power off
  5. 이전 배포 시도에서 이전 부트스트랩 리소스가 남아 있는 경우 이전 부트스트랩 리소스를 제거합니다.

    for i in $(sudo virsh list | tail -n +3 | grep bootstrap | awk {'print $2'});
    do
      sudo virsh destroy $i;
      sudo virsh undefine $i;
      sudo virsh vol-delete $i --pool $i;
      sudo virsh vol-delete $i.ign --pool $i;
      sudo virsh pool-destroy $i;
      sudo virsh pool-undefine $i;
    done

11.2.6. 추가 install-config 매개 변수

install-config.yaml 파일의 필수 매개 변수 hosts 매개 변수 및 bmc 매개 변수는 다음 표를 참조하십시오.

표 11.2. 필수 매개 변수

매개 변수기본설명

baseDomain

 

클러스터의 도메인 이름입니다. 예: example.com

bootMode

UEFI

노드의 부팅 모드입니다. 옵션은 legacy, UEFIUEFISecureBoot입니다. bootMode가 설정되지 않은 경우 Ironic은 노드를 검사하는 동안 해당 노드를 설정합니다.

sshKey

 

sshKey 구성 설정에는 컨트롤 플레인 노드 및 작업자 노드에 액세스하는 데 필요한 ~/.ssh/id_rsa.pub 파일의 키가 포함되어 있습니다. 일반적으로 이 키는 provisioner 노드에서 가져옵니다.

pullSecret

 

pullSecret 구성 설정에는 프로비저너 노드를 준비할 때 Install OpenShift on Bare Metal 페이지에서 다운로드한 풀 시크릿 사본이 포함되어 있습니다.

metadata:
    name:
 

OpenShift Container Platform 클러스터에 지정되는 이름입니다. 예: openshift

networking:
    machineNetwork:
    - cidr:
 

외부 네트워크의 공개 CIDR (Classless Inter-Domain Routing)입니다. 예: 10.0.0.0/24

compute:
  - name: worker
 

OpenShift Container Platform 클러스터에는 노드가 없는 경우에도 작업자 (또는 컴퓨팅) 노드에 이름을 지정해야 합니다.

compute:
    replicas: 2
 

복제는 OpenShift Container Platform 클러스터의 작업자 (또는 컴퓨팅) 노드 수를 설정합니다.

controlPlane:
    name: master
 

OpenShift Container Platform 클러스터에는 컨트롤 플레인 (마스터) 노드의 이름이 필요합니다.

controlPlane:
    replicas: 3
 

복제는 OpenShift Container Platform 클러스터의 일부로 포함된 컨트롤 플레인 (마스터) 노드의 수를 설정합니다.

provisioningNetworkInterface

 

provisioning 네트워크에 연결된 노드의 네트워크 인터페이스 이름입니다. OpenShift Container Platform 4.9 이상 릴리스의 경우 bootMACAddress 구성 설정을 사용하여 NIC 이름을 식별하는 대신 provisioningNetworkInterface 구성 설정을 사용하는 대신 NIC의 IP 주소를 식별할 수 있도록 Ironic을 활성화합니다.

defaultMachinePlatform

 

플랫폼 구성없이 머신 풀에 사용되는 기본 설정입니다.

apiVIP

 

(선택 사항) Kubernetes API 통신의 가상 IP 주소입니다.

이 설정은 install-config.yaml 파일에서 MachineNetwork에서 예약된 IP로 제공되거나 기본 이름이 올바르게 확인되도록 DNS에서 사전 구성해야 합니다. install-config.yaml 파일의 apiVIP 구성 설정에 값을 추가할 때 FQDN이 아닌 가상 IP 주소를 사용합니다. 듀얼 스택 네트워킹을 사용하는 경우 IP 주소는 기본 IPv4 네트워크에서여야 합니다. 설정하지 않으면 설치 프로그램에서 api.<cluster_name>.<base_domain> 을 사용하여 DNS에서 IP 주소를 파생합니다.

disableCertificateVerification

False

redfishredfish-virtualmedia 는 BMC 주소를 관리하기 위해 이 매개 변수가 필요합니다. BMC 주소에 자체 서명된 인증서를 사용하는 경우 값은 True 여야합니다.

ingressVIP

 

(선택 사항) 수신 트래픽의 가상 IP 주소입니다.

이 설정은 install-config.yaml 파일에서 MachineNetwork에서 예약된 IP로 제공되거나 기본 이름이 올바르게 확인되도록 DNS에서 사전 구성해야 합니다. install-config.yaml 파일의 ingressVIP 구성 설정에 값을 추가할 때 FQDN이 아닌 가상 IP 주소를 사용합니다. 듀얼 스택 네트워킹을 사용하는 경우 IP 주소는 기본 IPv4 네트워크에서여야 합니다. 설정되지 않은 경우 설치 프로그램은 test.apps.<cluster_name>.<base_domain> 을 사용하여 DNS에서 IP 주소를 파생합니다.

표 11.3. 선택적 매개변수

매개 변수기본설명

provisioningDHCPRange

172.22.0.10,172.22.0.100

provisioning 네트워크에서 노드의 IP 범위를 정의합니다.

provisioningNetworkCIDR

172.22.0.0/24

프로비저닝에 사용할 네트워크의 CIDR입니다. 이 옵션은 provisioning 네트워크에서 기본 주소 범위를 사용하지 않는 경우에 필요합니다.

clusterProvisioningIP

provisioningNetworkCIDR의 세 번째 IP 주소입니다.

프로비저닝 서비스가 실행되는 클러스터 내의 IP 주소입니다. 기본값은 provisioning 서브넷의 세 번째 IP 주소입니다. 예: 172.22.0.3

bootstrapProvisioningIP

provisioningNetworkCIDR의 두 번째 IP 주소입니다.

설치 프로그램이 컨트롤 플레인 (마스터) 노드를 배포하는 동안 프로비저닝 서비스가 실행되는 부트스트랩 VM의 IP 주소입니다. 기본값은 provisioning 서브넷의 두 번째 IP 주소입니다. 예를 들면 172.22.0.2 또는 2620:52:0:1307::2 입니다.

externalBridge

baremetal

baremetal 네트워크에 연결된 하이퍼 바이저의 baremetal 브리지 이름입니다.

provisioningBridge

provisioning

provisioning 네트워크에 연결된 provisioner 호스트의 provisioning 브리지 이름입니다.

defaultMachinePlatform

 

플랫폼 구성없이 머신 풀에 사용되는 기본 설정입니다.

bootstrapOSImage

 

부트스트랩 노드의 기본 운영 체제 이미지를 재정의하는 URL입니다. URL에는 이미지의 SHA-256 해시가 포함되어 있어야합니다. 예: https://mirror.openshift.com/rhcos-<version>-qemu.qcow2.gz?sha256=<uncompressed_sha256 > .

clusterOSImage

 

클러스터 노드의 기본 운영 체제를 재정의하는 URL입니다. URL에는 이미지의 SHA-256 해시가 포함되어 있어야 합니다. 예: https://mirror.openshift.com/images/rhcos-<version>-openstack.qcow2.gz?sha256=<compressed_sha256>.

provisioningNetwork

 

provisioningNetwork 구성 설정은 클러스터가 provisioning 네트워크를 사용하는지 여부를 결정합니다. 이 기능이 있는 경우 구성 설정은 클러스터가 네트워크를 관리하는지도 결정합니다.

disabled: provisioning 네트워크의 요구 사항을 비활성화하려면 이 매개변수를 Disabled 로 설정합니다. Disabled(비활성화됨 )로 설정하는 경우 가상 미디어 기반 프로비저닝만 사용하거나 지원 설치 프로그램을 사용하여 클러스터를 가져와야 합니다. Disabled 및 power management를 사용하는 경우 baremetal 네트워크에서 BMC에 액세스할 수 있어야 합니다. Disabled 인 경우 프로비저닝 서비스에 사용되는 baremetal 네트워크에 두 개의 IP 주소를 제공해야 합니다.

Managed: DHCP, TFTP 등을 포함한 프로비저닝 네트워크를 완전히 관리하려면 이 매개 변수를 기본값인 Managed 로 설정합니다.

Unmanaged: 이 매개변수를 Unmanaged 로 설정하여 프로비저닝 네트워크를 활성화하지만 DHCP 수동 구성을 처리합니다. 가상 미디어의 프로비저닝이 권장되지만 필요한 경우 PXE를 계속 사용할 수 있습니다.

httpProxy

 

이 매개 변수를 환경 내에서 사용되는 적절한 HTTP 프록시로 설정합니다.

httpsProxy

 

이 매개 변수를 환경 내에서 사용되는 적절한 HTTPS 프록시로 설정합니다.

noProxy

 

이 매개 변수를 환경 내 프록시 사용에 대한 적절한 예외 목록으로 설정합니다.

호스트

hosts 매개 변수는 클러스터를 빌드하는 데 사용되는 별도의 베어 메탈 자산 목록입니다.

표 11.4. 호스트

이름기본설명

name

 

세부 정보와 연결할 BareMetalHost 리소스의 이름입니다. 예: openshift-master-0

role

 

베어 메탈 노드의 역할입니다. master 또는 worker 중 하나입니다.

bmc

 

베이스 보드 관리 컨트롤러에 대한 연결 세부 정보입니다. 자세한 내용은 BMC 주소 지정 섹션을 참조하십시오.

bootMACAddress

 

호스트가 provisioning 네트워크에 사용하는 NIC의 MAC 주소입니다. Ironic은 bootMACAddress 구성 설정을 사용하여 IP 주소를 검색합니다. 그런 다음 호스트에 바인딩됩니다.

참고

provisioning 네트워크를 비활성화한 경우 호스트에서 유효한 MAC 주소를 제공해야 합니다.

11.2.7. 루트 장치 팁

rootDeviceHints 매개 변수를 사용하면 설치 프로그램이 RHCOS (Red Hat Enterprise Linux CoreOS) 이미지를 특정 장치에 프로비저닝할 수 있습니다. 설치 프로그램은 장치를 검색한 순서대로 검사하고 검색된 값을 팁과 비교합니다. 설치 프로그램은 팁과 일치하는 첫 번째 검색된 장치를 사용합니다. 이 설정은 여러 팁을 결합할 수 있지만 장치는 설치 프로그램이이를 선택할 수 있도록 모든 팁과 일치해야 합니다.

표 11.5. 서브 필드

서브 필드설명

deviceName

/dev/vda와 같은 Linux 장치 이름을 포함하는 문자열. 팁은 실제 값과 정확히 일치해야 합니다.

hctl

0:0:0:0과 같은 SCSI 버스 주소를 포함하는 문자열. 팁은 실제 값과 정확히 일치해야 합니다.

model

공급 업체별 장치 식별자가 포함된 문자열. 팁은 실제 값의 하위 문자열입니다.

vendor

장치의 공급 업체 또는 제조업체 이름이 포함된 문자열입니다. 팁은 실제 값의 하위 문자열입니다.

serialNumber

장치 일련 번호가 포함된 문자열입니다. 팁은 실제 값과 정확히 일치해야 합니다.

minSizeGigabytes

장치의 최소 크기 (기가 바이트)를 나타내는 정수입니다.

wwn

고유 저장소 식별자를 포함하는 문자열입니다. 팁은 실제 값과 정확히 일치해야 합니다.

wwnWithExtension

공급 업체 확장이 추가된 고유 한 저장소 식별자가 포함된 문자열입니다. 팁은 실제 값과 정확히 일치해야 합니다.

wwnVendorExtension

고유 공급 업체 저장소 식별자를 포함하는 문자열입니다. 팁은 실제 값과 정확히 일치해야 합니다.

rotational

장치가 회전 디스크 여야하는지 (true) 아닌지 (false)를 나타내는 부울 값입니다.

사용 예

     - name: master-0
       role: master
       bmc:
         address: ipmi://10.10.0.3:6203
         username: admin
         password: redhat
       bootMACAddress: de:ad:be:ef:00:40
       rootDeviceHints:
         deviceName: "/dev/sda"

11.2.8. OpenShift Container Platform 매니페스트 만들기

  1. OpenShift Container Platform 매니페스트를 만듭니다.

    $ ./openshift-baremetal-install --dir ~/clusterconfigs create manifests
    INFO Consuming Install Config from target directory
    WARNING Making control-plane schedulable by setting MastersSchedulable to true for Scheduler cluster settings
    WARNING Discarding the OpenShift Manifest that was provided in the target directory because its dependencies are dirty and it needs to be regenerated

11.2.9. OpenShift Container Platform 설치 프로그램을 통해 클러스터 배포

OpenShift Container Platform 설치 프로그램을 실행합니다.

$ ./openshift-baremetal-install --dir ~/clusterconfigs --log-level debug create cluster

11.2.10. 설치 후

배포 프로세스 중에 설치 디렉터리 폴더의 .openshift_install.log 로그 파일에 tail 명령을 실행하여 설치의 전체 상태를 확인할 수 있습니다.

$ tail -f /path/to/install-dir/.openshift_install.log