2.2. 공용 서브넷 구성
모든 OpenShift Container Platform 클러스터 노드는 공용 서브넷에 있어야 합니다. {ibmcloudBMRegProductName}은 서브넷에 DHCP 서버를 제공하지 않습니다. 프로비저너 노드에서 별도로 설정합니다.
프로비저너 노드를 준비할 때 정의된 BASH 변수를 재설정해야 합니다. 준비 후 프로비저너 노드를 재부팅하면 이전에 설정된 BASH 변수가 삭제됩니다.
프로세스
dnsmasq
를 설치합니다.$ sudo dnf install dnsmasq
dnsmasq
구성 파일을 엽니다.$ sudo vi /etc/dnsmasq.conf
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로 바꿉니다.클러스터의 하드웨어 목록을 가져옵니다.
$ ibmcloud sl hardware list
각 노드의 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 주소를 별도로 기록해 둡니다. 공용baremetal
네트워크의 공용 MAC 및 IP 주소와 개인provisioning
네트워크의 MAC 주소가 모두 있을 때까지 각 노드에 대해 이 절차를 반복합니다.각 노드의 공용
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 주소로 바꿉니다.dnsmasq
를 시작합니다.$ sudo systemctl start dnsmasq
노드를 부팅할 때 시작되도록
dnsmasq
를 활성화합니다.$ sudo systemctl enable dnsmasq
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
UDP 프로토콜을 사용하여 포트
53
및67
을 엽니다.$ sudo firewall-cmd --add-port 53/udp --permanent
$ sudo firewall-cmd --add-port 67/udp --permanent
masquerade를 사용하여 외부 영역에
provisioning
을 추가합니다.$ sudo firewall-cmd --change-zone=provisioning --zone=external --permanent
이 단계에서는 관리 서브넷에 대한 IPMI 호출의 네트워크 주소 변환을 보장합니다.
firewalld
구성을 다시 로드합니다.$ sudo firewall-cmd --reload