IBM Cloud Bare Metal (Classic) 설치


OpenShift Container Platform 4.17

IBM Cloud Bare Metal (Classic)에 OpenShift Container Platform 설치

Red Hat OpenShift Documentation Team

초록

이 문서에서는 IBM Cloud Bare Metal(Classic)에 OpenShift Container Platform을 설치하는 방법을 설명합니다.

1장. 사전 요구 사항

설치 관리자 프로비저닝 설치를 사용하여 IBM Cloud® Bare Metal(Classic) 노드에 OpenShift Container Platform을 설치할 수 있습니다. 이 문서에서는 IBM Cloud® 노드에 OpenShift Container Platform을 설치할 때 사전 요구 사항 및 절차를 설명합니다.

중요

Red Hat은 provisioning 네트워크에서만 IPMI 및 PXE를 지원합니다. Red Hat은 IBM Cloud® 배포에서 Secure Boot와 같은 Red Hat, 가상 미디어 또는 기타 보완 기술을 테스트하지 않았습니다. provisioning 네트워크가 필요합니다.

OpenShift Container Platform 설치 프로그램으로 프로비저닝된 설치에는 다음이 필요합니다.

  • 프로비저너를 실행하기 위한 RHCOS(Red Hat Enterprise Linux CoreOS) 8.x가 설치된 노드 1개
  • 컨트롤 플레인 노드 세 개
  • 라우팅 가능한 네트워크 1개
  • 하나의 프로비저닝 네트워크

IBM Cloud® Bare Metal(Classic)에서 설치 관리자 프로비저닝 설치를 시작하기 전에 다음 사전 요구 사항 및 요구 사항을 해결합니다.

1.1. IBM Cloud Bare Metal (Classic) 인프라 설정

IBM Cloud® Bare Metal (Classic) 인프라에 OpenShift Container Platform 클러스터를 배포하려면 먼저 IBM Cloud® 노드를 프로비저닝해야 합니다.

중요

Red Hat은 provisioning 네트워크에서만 IPMI 및 PXE를 지원합니다. Red Hat은 IBM Cloud® 배포에서 Secure Boot와 같은 Red Hat, 가상 미디어 또는 기타 보완 기술을 테스트하지 않았습니다. provisioning 네트워크가 필요합니다.

IBM Cloud® API를 사용하여 IBM Cloud® 노드를 사용자 지정할 수 있습니다. IBM Cloud® 노드를 생성할 때 다음 요구 사항을 고려해야 합니다.

클러스터당 하나의 데이터 센터 사용

OpenShift Container Platform 클러스터의 모든 노드는 동일한 IBM Cloud® 데이터 센터에서 실행해야 합니다.

공용 및 개인 VLAN 생성

단일 공용 VLAN과 단일 개인 VLAN을 사용하여 모든 노드를 생성합니다.

서브넷에 충분한 IP 주소가 있는지 확인

IBM Cloud® 공용 VLAN 서브넷에서는 기본적으로 16개의 IP 주소를 제공하는 /28 접두사를 사용합니다. 이는 baremetal 네트워크의 세 개의 컨트롤 플레인 노드, 4개의 작업자 노드, API VIP 및 Ingress VIP의 IP 주소 두 개로 구성된 클러스터에 충분합니다. 대규모 클러스터의 경우 더 작은 접두사가 필요할 수 있습니다.

IBM Cloud® 프라이빗 VLAN 서브넷에서는 기본적으로 64개의 IP 주소를 제공하는 /26 접두사를 사용합니다. IBM Cloud® Bare Metal(Classic)은 프라이빗 네트워크 IP 주소를 사용하여 각 노드의 BMC(Baseboard Management Controller)에 액세스합니다. OpenShift Container Platform은 provisioning 네트워크에 대한 추가 서브넷을 생성합니다. provisioning 네트워크 서브넷의 네트워크 트래픽은 개인 VLAN을 통해 라우팅됩니다. 대규모 클러스터의 경우 더 작은 접두사가 필요할 수 있습니다.

Expand
표 1.1. 접두사당 IP 주소
IP 주소접두사

32

/27

64

/26

128

/25

256

/24

NIC 설정

OpenShift Container Platform은 다음 두 가지 네트워크를 사용하여 배포합니다.

  • provisioning: provisioning 네트워크는 OpenShift Container Platform 클러스터의 일부인 각 노드에서 기본 운영 체제를 프로비저닝하는 데 사용되는 라우팅할 수 없는 네트워크입니다.
  • baremetal: baremetal 네트워크는 라우팅 가능한 네트워크입니다. provisioningNetworkInterface 구성 설정에 지정된 NIC 또는 provisioning 네트워크에 대한 노드의 bootMACAddress 구성 설정에 연결된 NIC가 아닌 경우 baremetal 네트워크와 상호 작용하기 위해 NIC를 사용할 수 있습니다.

클러스터 노드에는 두 개 이상의 NIC가 포함될 수 있지만 설치 프로세스는 처음 두 개의 NIC에만 중점을 둡니다. 예를 들면 다음과 같습니다.

Expand
NIC네트워크VLAN

NIC1

provisioning

<provisioning_vlan>

NIC2

baremetal

<baremetal_vlan>

이전 예에서 모든 컨트롤 플레인 및 작업자 노드의 NIC1은 OpenShift Container Platform 클러스터 설치에만 사용되는 라우팅 불가능한 네트워크(provisioning)에 연결됩니다. 모든 컨트롤 플레인 및 작업자 노드의 NIC2는 라우팅 가능한 baremetal 네트워크에 연결됩니다.

Expand
PXE부팅 순서

NIC1 PXE 지원 provisioning 네트워크

1

NIC2 baremetal 네트워크

2

참고

provisioning 네트워크에 사용되는 NIC에서 PXE가 활성화되어 있고 다른 모든 NIC에서 비활성화되어 있는지 확인합니다.

표준 이름 구성

클라이언트는 baremetal 네트워크를 통해 OpenShift Container Platform 클러스터 노드에 액세스합니다. 표준 이름 확장이 클러스터 이름인 IBM Cloud® 하위 도메인 또는 하위 영역을 구성합니다.

<cluster_name>.<domain>
Copy to Clipboard Toggle word wrap

예를 들면 다음과 같습니다.

test-cluster.example.com
Copy to Clipboard Toggle word wrap
DNS 항목 생성

다음을 위해 공용 서브넷에서 사용되지 않는 IP 주소를 확인하는 DNS A 레코드 항목을 생성해야 합니다.

Expand
사용법호스트 이름IP

API

api.<cluster_name>.<domain>

<ip>

Ingress LB (apps)

*.apps.<cluster_name>.<domain>

<ip>

컨트롤 플레인 및 작업자 노드에는 프로비저닝 후 DNS 항목이 이미 있습니다.

다음 표에서는 정규화된 도메인 이름의 예를 제공합니다. API 및 Nameserver 주소는 표준 이름 확장으로 시작됩니다. 컨트롤 플레인 및 작업자 노드의 호스트 이름은 예외이므로 원하는 호스트 이름 지정 규칙을 사용할 수 있습니다.

Expand
사용법호스트 이름IP

API

api.<cluster_name>.<domain>

<ip>

Ingress LB (apps)

*.apps.<cluster_name>.<domain>

<ip>

Provisioner node

provisioner.<cluster_name>.<domain>

<ip>

Master-0

openshift-master-0.<cluster_name>.<domain>

<ip>

Master-1

openshift-master-1.<cluster_name>.<domain>

<ip>

Master-2

openshift-master-2.<cluster_name>.<domain>

<ip>

Worker-0

openshift-worker-0.<cluster_name>.<domain>

<ip>

Worker-1

openshift-worker-1.<cluster_name>.<domain>

<ip>

Worker-n

openshift-worker-n.<cluster_name>.<domain>

<ip>

OpenShift Container Platform에는 클러스터 멤버십 정보를 사용하여 A 레코드를 생성하는 기능이 포함되어 있습니다. 이렇게 하면 노드 이름이 해당 IP 주소로 확인됩니다. 노드가 API에 등록되면 클러스터에서 CoreDNS-mDNS를 사용하지 않고 노드 정보를 분산할 수 있습니다. 그러면 멀티캐스트 DNS와 연결된 네트워크 트래픽이 제거됩니다.

중요

IBM Cloud® 노드를 프로비저닝한 후 CoreDNS를 제거하면 로컬 항목이 사라지기 때문에 외부 DNS에서 api.<cluster_name>. <domain> 도메인 이름에 대한 DNS 항목을 생성해야 합니다. 외부 DNS 서버에서 api.<cluster_name>.<domain> 도메인 이름에 대한 DNS 레코드를 생성하지 않으면 작업자 노드가 클러스터에 참여하지 못하도록 합니다.

Network Time Protocol (NTP)

클러스터의 각 OpenShift Container Platform 노드는 NTP 서버에 액세스할 수 있습니다. OpenShift Container Platform 노드는 NTP를 사용하여 클럭을 동기화합니다. 예를 들어 클러스터 노드는 검증이 필요한 SSL 인증서를 사용하므로 노드 간 날짜와 시간이 동기화되지 않은 경우 인증서가 실패할 수 있습니다.

중요

각 클러스터 노드의 BIOS 설정에서 일관된 클럭 날짜 및 시간 형식을 정의하지 않으면 설치에 실패할 수 있습니다.

DHCP 서버 구성

IBM Cloud® Bare Metal(Classic)은 공용 또는 프라이빗 VLAN에서 DHCP를 실행하지 않습니다. IBM Cloud® 노드를 프로비저닝한 후에는 OpenShift Container Platform의 baremetal 네트워크에 해당하는 공용 VLAN에 대한 DHCP 서버를 설정해야 합니다.

참고

각 노드에 할당된 IP 주소는 IBM Cloud® Bare Metal(Classic) 프로비저닝 시스템에서 할당한 IP 주소와 일치시킬 필요가 없습니다.

자세한 내용은 "공용 서브넷 구성" 섹션을 참조하십시오.

BMC 액세스 권한 확인

대시보드의 각 노드에 대한 "원격 관리" 페이지에는 노드의 IPMI(Intelligent Platform Management Interface) 인증 정보가 포함되어 있습니다. 기본 IPMI 권한을 사용하면 사용자가 특정 부팅 대상을 변경하지 못하게 합니다. Ironic에서 이러한 변경을 수행할 수 있도록 권한 수준을 OPERATOR로 변경해야 합니다.

install-config.yaml 파일에서 privilegelevel 매개 변수를 각 BMC를 구성하는 데 사용되는 URL에 추가합니다. 자세한 내용은 " install-config.yaml 파일 구성" 섹션을 참조하십시오. 예를 들면 다음과 같습니다.

ipmi://<IP>:<port>?privilegelevel=OPERATOR
Copy to Clipboard Toggle word wrap

또는 IBM Cloud® 지원에 문의하여 각 노드의 ADMINISTRATOR 에 대한 IPMI 권한을 늘리도록 요청합니다.

베어 메탈 서버 생성

리소스 생성 → Classic용 베어 메탈 서버로 이동하여 IBM Cloud® 대시보드에서 베어 메탈 서버를 생성합니다.

또는 ibmcloud CLI 유틸리티를 사용하여 베어 메탈 서버를 생성할 수도 있습니다. 예를 들면 다음과 같습니다.

$ ibmcloud sl hardware create --hostname <SERVERNAME> \
                            --domain <DOMAIN> \
                            --size <SIZE> \
                            --os <OS-TYPE> \
                            --datacenter <DC-NAME> \
                            --port-speed <SPEED> \
                            --billing <BILLING>
Copy to Clipboard Toggle word wrap

IBM Cloud® CLI 설치에 대한 자세한 내용은 독립 실행형 IBM Cloud® CLI 설치를 참조하십시오.

참고

IBM Cloud® 서버는 사용 가능한 데 3-5 시간이 걸릴 수 있습니다.

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

2.1. IBM Cloud(R) Bare Metal(Classic) 인프라에서 프로비저너 노드 준비

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

프로세스

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

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

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

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

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

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

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

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

    $ sudo usermod --append --groups libvirt kni
    Copy to Clipboard Toggle word wrap
  8. firewalld 시작:

    $ sudo systemctl start firewalld
    Copy to Clipboard Toggle word wrap
  9. firewalld 활성화:

    $ sudo systemctl enable firewalld
    Copy to Clipboard Toggle word wrap
  10. http 서비스를 시작합니다.

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

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

    $ PRVN_HOST_ID=<ID>
    Copy to Clipboard Toggle word wrap

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

    $ ibmcloud sl hardware list
    Copy to Clipboard Toggle word wrap
  13. 공용 서브넷의 ID를 설정합니다.

    $ PUBLICSUBNETID=<ID>
    Copy to Clipboard Toggle word wrap

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

    $ ibmcloud sl subnet list
    Copy to Clipboard Toggle word wrap
  14. 프라이빗 서브넷의 ID를 설정합니다.

    $ PRIVSUBNETID=<ID>
    Copy to Clipboard Toggle word wrap

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

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

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

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

    $ PUB_IP_CIDR=$PRVN_PUB_IP/$PUBLICCIDR
    Copy to Clipboard Toggle word wrap
  18. 공용 네트워크의 게이트웨이를 설정합니다.

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

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

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

    $ PRIV_IP_CIDR=$PRVN_PRIV_IP/$PRIVCIDR
    Copy to Clipboard Toggle word wrap
  22. 사설 네트워크의 게이트웨이를 설정합니다.

    $ PRIV_GATEWAY=$(ibmcloud sl subnet detail $PRIVSUBNETID --output JSON | jq .gateway -r)
    Copy to Clipboard Toggle word wrap
  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
    "
    Copy to Clipboard Toggle word wrap
    참고

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

  24. 필요한 경우 provisioner 노드로 SSH를 실행합니다.

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

    $ sudo nmcli con show
    Copy to Clipboard Toggle word wrap

    출력 예

    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
    Copy to Clipboard Toggle word wrap

  26. pull-secret.txt 파일을 만듭니다.

    $ vim pull-secret.txt
    Copy to Clipboard Toggle word wrap

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

2.2. 공용 서브넷 구성

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

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

프로세스

  1. dnsmasq를 설치합니다.

    $ sudo dnf install dnsmasq
    Copy to Clipboard Toggle word wrap
  2. dnsmasq 구성 파일을 엽니다.

    $ sudo vi /etc/dnsmasq.conf
    Copy to Clipboard Toggle word wrap
  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
    Copy to Clipboard Toggle word wrap
    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
    Copy to Clipboard Toggle word wrap

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

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

    $ ibmcloud sl subnet detail <publicsubnetid> --output JSON | jq .gateway -r
    Copy to Clipboard Toggle word wrap

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

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

    $ ibmcloud  sl hardware detail <id> --output JSON | \
                jq .primaryBackendIpAddress -r
    Copy to Clipboard Toggle word wrap

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

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

    $ ibmcloud sl hardware detail <id> --output JSON | jq .primaryIpAddress -r
    Copy to Clipboard Toggle word wrap

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

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

    $ ibmcloud sl hardware list
    Copy to Clipboard Toggle word wrap
  5. 각 노드의 MAC 주소 및 IP 주소를 가져옵니다.

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

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

    출력 예

    "10.196.130.144 00:e0:ed:6a:ca:b4"
    "141.125.65.215 00:e0:ed:6a:ca:b5"
    Copy to Clipboard Toggle word wrap

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

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

    $ sudo vim /var/lib/dnsmasq/dnsmasq.hostsfile
    Copy to Clipboard Toggle word wrap

    입력 예

    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
    ...
    Copy to Clipboard Toggle word wrap

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

  7. dnsmasq 를 시작합니다.

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

    $ sudo systemctl enable dnsmasq
    Copy to Clipboard Toggle word wrap
  9. dnsmasq 가 실행 중인지 확인합니다.

    $ sudo systemctl status dnsmasq
    Copy to Clipboard Toggle word wrap

    출력 예

    ● 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
    Copy to Clipboard Toggle word wrap

  10. UDP 프로토콜을 사용하여 포트 5367 을 엽니다.

    $ sudo firewall-cmd --add-port 53/udp --permanent
    Copy to Clipboard Toggle word wrap
    $ sudo firewall-cmd --add-port 67/udp --permanent
    Copy to Clipboard Toggle word wrap
  11. masquerade를 사용하여 외부 영역에 provisioning 을 추가합니다.

    $ sudo firewall-cmd --change-zone=provisioning --zone=external --permanent
    Copy to Clipboard Toggle word wrap

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

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

    $ sudo firewall-cmd --reload
    Copy to Clipboard Toggle word wrap

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

설치 프로그램의 stable-4.x 버전과 선택한 아키텍처를 사용하여 일반적으로 사용 가능한 OpenShift Container Platform 버전을 배포합니다.

$ export VERSION=stable-4.17
Copy to Clipboard Toggle word wrap
$ export RELEASE_ARCH=<architecture>
Copy to Clipboard Toggle word wrap
$ export RELEASE_IMAGE=$(curl -s https://mirror.openshift.com/pub/openshift-v4/$RELEASE_ARCH/clients/ocp/$VERSION/release.txt | grep 'Pull From: quay.io' | awk -F ' ' '{print $3}')
Copy to Clipboard Toggle word wrap

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

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

프로세스

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

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

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

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

2.5. install-config.yaml 파일 구성

install-config.yaml 파일에는 몇 가지 추가 정보가 필요합니다. 대부분의 정보는 설치 프로그램을 교육하여 사용 가능한 IBM Cloud® 베어 메탈(Classic) 하드웨어에 대해 충분한 정보를 제공하여 이를 완전히 관리할 수 있도록 합니다. 베어 메탈에 설치하고 IBM Cloud® Bare Metal(Classic)에 설치하는 것과의 주요 차이점은 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>'
    Copy to Clipboard Toggle word wrap
    1 3
    bmc.addressOPERATOR 로 설정된 privilegelevel 구성 설정을 제공합니다. 이는 IBM Cloud® Bare Metal (Classic) 인프라에 필요합니다.
    2 4
    해당 노드에 대한 개인 provisioning 네트워크 NIC의 MAC 주소를 추가합니다.
    참고

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

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

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

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

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

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

    $ ipmitool -I lanplus -U <user> -P <password> -H <management_server_ip> power off
    Copy to Clipboard Toggle word wrap
  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
    Copy to Clipboard Toggle word wrap

2.6. 추가 install-config 매개 변수

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

Expand
표 2.1. 필수 매개 변수
매개 변수기본설명

baseDomain

 

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

bootMode

UEFI

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

bootstrapExternalStaticDNS

 

부트스트랩 노드의 정적 네트워크 DNS입니다. 베어 메탈 네트워크에 DHCP(Dynamic Host Configuration Protocol) 서버가 없는 경우 고정 IP 주소가 있는 클러스터를 배포할 때 이 값을 설정해야 합니다. 이 값을 설정하지 않으면 설치 프로그램은 bootstrapExternalStaticGateway 의 값을 사용하므로 게이트웨이 및 DNS의 IP 주소 값이 다를 때 문제가 발생합니다.

bootstrapExternalStaticIP

 

부트스트랩 VM의 고정 IP 주소입니다. 베어 메탈 네트워크에 DHCP 서버가 없는 경우 고정 IP 주소가 있는 클러스터를 배포할 때 이 값을 설정해야 합니다.

bootstrapExternalStaticGateway

 

부트스트랩 VM에 대한 게이트웨이의 고정 IP 주소입니다. 베어 메탈 네트워크에 DHCP 서버가 없는 경우 고정 IP 주소가 있는 클러스터를 배포할 때 이 값을 설정해야 합니다.

sshKey

 

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

pullSecret

 

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

metadata:
    name:
Copy to Clipboard Toggle word wrap
 

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

networking:
    machineNetwork:
    - cidr:
Copy to Clipboard Toggle word wrap
 

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

compute:
  - name: worker
Copy to Clipboard Toggle word wrap
 

OpenShift Container Platform 클러스터에는 노드가 없는 경우에도 컴퓨팅 노드에 이름을 제공해야 합니다.

compute:
    replicas: 2
Copy to Clipboard Toggle word wrap
 

replicas는 OpenShift Container Platform 클러스터의 컴퓨팅 노드 수를 설정합니다.

controlPlane:
    name: master
Copy to Clipboard Toggle word wrap
 

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

controlPlane:
    replicas: 3
Copy to Clipboard Toggle word wrap
 

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

provisioningNetworkInterface

 

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

defaultMachinePlatform

 

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

apiVIPs

 

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

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

참고

OpenShift Container Platform 4.12 이전에는 클러스터 설치 프로그램에서 apiVIP 구성 설정에 대해 IPv4 주소 또는 IPv6 주소만 허용했습니다. OpenShift Container Platform 4.12 이상에서는 apiVIP 구성 설정이 더 이상 사용되지 않습니다. 대신 apiVIPs 구성 설정에 목록 형식을 사용하여 IPv4 주소, IPv6 주소 또는 두 IP 주소 형식을 모두 지정합니다.

disableCertificateVerification

False

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

ingressVIPs

 

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

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

참고

OpenShift Container Platform 4.12 이전에는 클러스터 설치 프로그램에서 ingressVIP 구성 설정에 대해 IPv4 주소 또는 IPv6 주소만 허용했습니다. OpenShift Container Platform 4.12 이상에서는 ingressVIP 구성 설정이 더 이상 사용되지 않습니다. 대신 ingressVIPs 구성 설정에 목록 형식을 사용하여 IPv4 주소, IPv6 주소 또는 두 IP 주소 형식을 모두 지정합니다.

Expand
표 2.2. 선택적 매개변수
매개 변수기본설명

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

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

provisioningBridge

provisioning

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

아키텍처

 

클러스터의 호스트 아키텍처를 정의합니다. 유효한 값은 amd64 또는 arm64 입니다.

defaultMachinePlatform

 

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

bootstrapOSImage

 

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

provisioningNetwork

 

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

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

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

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

httpProxy

 

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

httpsProxy

 

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

noProxy

 

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

호스트

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

Expand
표 2.3. 호스트
이름기본설명

name

 

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

role

 

베어 메탈 노드의 역할입니다. 마스터 (컨트롤 플레인 노드) 또는 작업자 (컴퓨팅 노드) 중 하나입니다.

bmc

 

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

bootMACAddress

 

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

참고

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

networkConfig

 

이 선택적 매개 변수를 설정하여 호스트의 네트워크 인터페이스를 구성합니다. 자세한 내용은 "(선택 사항) 호스트 네트워크 인터페이스 구성을 참조하십시오.

2.7. 루트 장치 팁

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

Expand
표 2.4. 서브 필드
서브 필드설명

deviceName

Linux 장치 이름(예: /dev/vda 또는 /dev/disk/by-path/ )이 포함된 문자열입니다. 스토리지 위치에 /dev/disk/by-path/<device_path > 링크를 사용하는 것이 좋습니다. 팁은 실제 값과 정확히 일치해야 합니다.

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"
Copy to Clipboard Toggle word wrap

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

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

    $ ./openshift-baremetal-install --dir ~/clusterconfigs create manifests
    Copy to Clipboard Toggle word wrap
    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
    Copy to Clipboard Toggle word wrap

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

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

$ ./openshift-baremetal-install --dir ~/clusterconfigs --log-level debug create cluster
Copy to Clipboard Toggle word wrap

2.10. 설치 진행 상황

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

$ tail -f /path/to/install-dir/.openshift_install.log
Copy to Clipboard Toggle word wrap

Legal Notice

Copyright © 2025 Red Hat

OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).

Modified versions must remove all Red Hat trademarks.

Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.

Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.

Linux® is the registered trademark of Linus Torvalds in the United States and other countries.

Java® is a registered trademark of Oracle and/or its affiliates.

XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.

MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.

Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.

The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation’s permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.

All other trademarks are the property of their respective owners.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat