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

14.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. public 네트워크의 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. 필요한 경우 프로비저너 노드로 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단계에서 풀 시크릿 다운로드를 클릭합니다. pull-secret.txt 파일에 내용을 붙여 넣고 kni 사용자의 홈 디렉터리에 저장합니다.