3장. RHOSP 동적 라우팅용 언더클라우드 배포
언더클라우드는 오버클라우드라는 최종 RHOSP(Red Hat OpenStack Platform) 환경의 구성, 설치, 관리를 제어하는 노드입니다. 언더클라우드는 컨테이너에서 실행되는 OVN BGP 에이전트를 포함한 OpenStack Platform 구성 요소 서비스를 사용합니다. 이러한 컨테이너화된 서비스에는 오버클라우드를 생성하고 관리하는 데 사용하는 RHOSP director라는 툴이 포함되어 있습니다.
이 섹션에 포함된 항목은 다음과 같습니다.
3.1. RHOSP 동적 라우팅을 위한 언더클라우드 설치 및 구성 링크 복사링크가 클립보드에 복사되었습니다!
RHOSP(Red Hat OpenStack Platform) director를 사용하여 RHOSP 언더클라우드에 동적 라우팅을 설치하고 구성합니다. 높은 수준의 단계는 다음과 같습니다.
-
(선택 사항)
frr-parameters.yaml에서 언더클라우드의 BGP 구성 값을 설정합니다. -
undercloud.conf에서 undercloud의 spine-leaf 네트워크 토폴로지 구성 값을 설정합니다. -
openstack undercloud install명령을 실행합니다.
프로세스
-
언더클라우드 호스트에
stack사용자로 로그인합니다. stackrc언더클라우드 인증 정보 파일을 소싱합니다.$ source ~/stackrcBGP를 사용하여 다른 랙 및 오버클라우드 노드에 도달하려는 경우 사용자 지정 heat 환경 파일인
/home/stack/templates/frr-parameters.yaml에 다음 매개변수를 추가하여 언더클라우드에 FRRouting(FRR)을 설치합니다.참고이 경로를 상기하십시오. 이는 이후 단계에서 필요합니다.
예제
parameter_defaults: ContainerFrrImage: registry.redhat.io/rhosp-17.1/openstack-frr-rhel9:17.1.1 FrrBfdEnabled: true FrrBgpEnabled: true FrrBgpAsn: 64999 FrrBgpUplinks: ['nic2', 'nic3'] FrrBgpUplinksScope: internal FrrLogLevel: debugging FrrBgpRouterID: 172.30.4.1 FrrBgpIpv4SrcIp: 172.30.4.1 FrrBgpIpv6SrcIp: fe80::5054:ff:fe74:73ce작은 정보자세한 내용은 Overcloud 매개변수 가이드의 네트워킹(neutron) 매개변수를 참조하십시오.
FrrBfdEnabled-
true인 경우 양방향 전달 탐지(BFD)를 활성화합니다. 기본값은false입니다. FrrBgpEnabled-
true인 경우 BGP(Border Gateway Protocol)를 활성화합니다. 기본값은true입니다. FrrBgpAsn-
FRRouting 내에서 사용할 기본 ASN입니다. 기본값은
65000입니다.FrrBgpAsn은 사용되는 각 역할에 대해 다른 값으로 설정할 수 있습니다. FrrBgpUplinks-
쉼표로 구분된 uplink 네트워크 인터페이스 목록입니다. 기본값은
['nic1', 'nic2']입니다. FrrBgpUplinksScope-
내부(iBGP) 또는 외부(eBGP) 포르투어와 피어링합니다. 기본값은
internal입니다. FrrLogLevel-
값 집합을 사용하여 FRR 로그 수준을 지정합니다.
긴급 상황,경고,중요,오류,경고,알림,정보 제공. 기본값은informational입니다. FrrBgpRouterID-
FRR에서 사용할 BGP
router_id입니다. FrrBgpIpv4SrcIp- IPv4 네트워크 트래픽의 소스 IP 주소입니다.
FrrBgpIpv6SrcIp- IPv6 네트워크 트래픽의 소스 IP 주소입니다.
tripleo_frr_bgp_peers- IP 주소 또는 Free Range Routing (FRR)의 호스트 이름을 지정하는 데 사용되는 역할별 매개변수입니다.
tripleo_frr_ovn_bgp_agent_enable-
데이터 플레인 경로가 노출되지 않는 RHOSP 노드에서 OVN BGP 에이전트를 활성화하거나 비활성화하는 데 사용되는 역할별 매개변수입니다. 기본값은
true입니다.
undercloud.conf파일이 없는 경우 샘플 템플릿 파일을 복사합니다.$ cp /usr/share/python-tripleoclient/undercloud.conf.sample \ ~/templates/undercloud.conf[DEFAULT]섹션에서 다음 일반 매개변수 값을 설정합니다.예제
[DEFAULT] # General cleanup = false container_images_file=/home/stack/templates/ \containers-prepare-parameter.yaml overcloud_domain_name = {{ cloud_domain }} undercloud_timezone = UTC undercloud_hostname = undercloud-0.{{ cloud_domain }} # BGP on undercloud ... # TLS-e ... # Networking ... # Subnets ...작은 정보자세한 내용은 director 가이드를 사용하여 Red Hat OpenStack Platform 설치 및 관리의 Undercloud 구성 매개변수를 참조하십시오.
overcloud_domain_name-
오버클라우드를 배포할 때 사용할 DNS 도메인 이름을 지정합니다. 후속 단계에서는 이 값이 오버클라우드
CloudDomain매개변수의 값과 일치하는지 확인해야 합니다. cleanup-
임시 파일을 삭제합니다. 배포 중에 사용되는 임시 파일을 유지하려면 이를
false로 설정합니다. 임시 파일은 오류가 발생하는 경우 배포를 디버깅하는 데 도움이 될 수 있습니다. container_images_file- 컨테이너 이미지 정보를 사용하여 Heat 환경 파일을 지정합니다.
container_insecure_registries-
podman이 사용할 수 있는 비보안 레지스트리 목록입니다. 개인 컨테이너 레지스트리와 같은 다른 소스에서 이미지를 가져오려는 경우 이 매개변수를 사용합니다. custom_env_files- 언더클라우드 설치에 추가할 추가 환경 파일입니다.
undercloud_hostname- 언더클라우드에 대해 정규화된 호스트 이름을 정의합니다. 설정되어 있는 경우 언더클라우드 설치 시 모든 시스템 호스트 이름 설정이 구성됩니다. 설정되어 있지 않은 경우 언더클라우드에서 현재 호스트 이름을 사용하지만 사용자가 모든 시스템 호스트 이름 설정을 적절하게 구성해야 합니다.
undercloud_timezone- 언더클라우드의 호스트 시간대입니다. 시간대를 지정하지 않으면 director는 기존의 표준 시간대 설정을 사용합니다.
언더클라우드에 BGP를 설치하려면
[DEFAULT]섹션에서 언더클라우드의 FRRR을 활성화하고 이전 단계에서 FRR 매개변수 값을 설정하는 사용자 지정 환경 파일을 가리킵니다.예제
[DEFAULT] # General ... # BGP on undercloud enable_frr=true custom_env_files=/home/stack/templates/frr-parameters.yaml # TLS-e ... # Networking ... # Subnets ...TLS-everywhere를 사용하는 경우
[DEFAULT]섹션에서 다음 TLS-everywhere 매개변수 값을 설정합니다.예제
[DEFAULT] # General ... # BGP on undercloud ... # TLS-e enable_novajoin = False undercloud_nameservers = {{ freeipa_ip }} generate_service_certificate = True ipa_otp = {{ undercloud_otp }} # Networking ... # Subnets ...작은 정보자세한 내용은 director 가이드를 사용하여 Red Hat OpenStack Platform 설치 및 관리의 Undercloud 구성 매개변수를 참조하십시오.
enable_novajoin-
true인 경우 novajoin 서비스가 TLS를 배포할 수 있도록 합니다. undercloud_nameservers-
언더클라우드 이름 서버에 대한 DNS 서버의 현재 IP 주소를 지정합니다. 이 정보는
/etc/resolv.conf에서 확인할 수 있습니다. generate_service_certificate-
언더클라우드 설치 중에
undercloud_service_certificate매개변수에 사용되는 SSL/TLS 인증서를 생성할지 여부를 정의합니다. ipa_otp- FreeIPA OTP 사실을 설정합니다.
[DEFAULT]섹션에서 다음 networking 매개변수 값을 설정합니다.예제
[DEFAULT] # General ... # BGP on undercloud ... # TLS-e ... # Networking local_interface = eth0 local_ip = {{ undercloud_ctlplane }}/24 undercloud_public_host = {{ undercloud_public_host }} undercloud_admin_host = {{ undercloud_admin_host }} # Subnets ...작은 정보자세한 내용은 director 가이드를 사용하여 Red Hat OpenStack Platform 설치 및 관리의 Undercloud 구성 매개변수를 참조하십시오.
local_interface- 로컬 네트워크의 브릿지에 대한 인터페이스입니다.
local_ip-
leaf0에서 언더클라우드의 IP 주소입니다. undercloud_public_host- 언더클라우드의 외부에서 IP 주소.
undercloud_admin_host- 언더클라우드의 관리 IP 주소입니다. 이 IP 주소는 일반적으로 leaf0에 있습니다.
subnets매개변수에서 이전에 정의한 각 서브넷에 대한 새 섹션을 만듭니다.중요director가 서브넷을 생성한 후에는 director가 서브넷의 IP 주소를 변경할 수 없습니다.
예제
[DEFAULT] # General ... # BGP on undercloud ... # TLS-e ... # Networking ... # Subnets [r1] # This subnet is used for overcloud nodes deployed on rack1. cidr = 192.168.1.0/24 dhcp_start = 192.168.1.150 dhcp_end = 192.168.1.170 inspection_iprange = 192.168.1.171,192.168.1.185 gateway = 192.168.1.1 masquerade = False [r2] # This subnet is used for overcloud nodes deployed on rack2. cidr = 192.168.2.0/24 dhcp_start = 192.168.2.150 dhcp_end = 192.168.2.170 inspection_iprange = 192.168.2.171,192.168.2.185 gateway = 192.168.2.1 masquerade = False [r3] # This subnet is used for overcloud nodes deployed on rack3. cidr = 192.168.3.0/24 dhcp_start = 192.168.3.150 dhcp_end = 192.168.3.170 inspection_iprange = 192.168.3.171,192.168.3.185 gateway = 192.168.3.1 masquerade = False [r4] # This subnet is used for the underloud node and potentially FreeIPA # that are deployed on rack4. cidr = 192.168.4.0/24 dhcp_start = {{ undercloud_dhcp_start }} dhcp_end = 192.168.4.170 inspection_iprange = 192.168.4.171,192.168.4.185 gateway = 192.168.4.1 masquerade = False작은 정보자세한 내용은 director 가이드를 사용하여 Red Hat OpenStack Platform 설치 및 관리의 서브넷 을 참조하십시오.
cidr-
director에서 오버클라우드 인스턴스를 관리하는 데 사용하는 네트워크입니다. 이 네트워크는 언더클라우드의
neutron서비스에서 관리하는 프로비저닝 네트워크입니다. 프로비저닝 네트워크에 다른 서브넷을 사용하지 않는 경우 기본값192.168.24.0/24로 두십시오. masquerade외부 액세스를 위해
cidr에 정의된 네트워크를 마스커레이드할지 여부를 정의합니다. 그러면 프로비저닝 네트워크에 NAT(네트워크 주소 변환)가 제공되어 director를 통해 프로비저닝 네트워크에 외부 액세스 권한이 부여됩니다.참고director 설정은 관련 sysctl 커널 매개변수를 사용하여 IP 전달을 자동으로 활성화합니다.
dhcp_start및dhcp_end- 오버클라우드 노드의 DHCP 할당 범위 시작과 끝 값입니다. 이 범위에 노드를 할당하기에 충분한 IP 주소가 포함되어 있는지 확인하십시오.
dhcp_exclude- DHCP 할당 범위에서 제외할 IP 주소입니다.
dns_nameservers-
서브넷과 관련된 DNS 네임 서버입니다. 서브넷의 네임 서버가 정의되지 않은 경우 서브넷에서는
undercloud_nameservers매개변수에 정의된 네임 서버를 사용합니다. gateway-
오버클라우드 인스턴스의 게이트웨이입니다. 트래픽을 외부 네트워크로 전달하는 언더클라우드 호스트입니다. director에 다른 IP 주소를 사용하거나 외부 게이트웨이를 직접 사용하려는 경우를 제외하고 기본값
192.168.24.1로 두십시오.
install 명령을 실행합니다.
$ openstack undercloud install언더클라우드에 각 리프 및 랙에 도달하기 위해 추가 네트워크 경로를 포함하여 올바른 네트워크 구성이 있는지 확인합니다.
자세한 내용은 director 가이드를 사용하여 Red Hat OpenStack Platform 설치 및 관리의 Director 구성 매개변수를 참조하십시오.
검증
director 설정 스크립트는 모든 서비스를 자동으로 시작합니다. RHOSP 서비스 컨테이너가 실행 중인지 확인합니다.
$ sudo podman ps -a --format "{{.Names}} {{.Status}}"샘플 출력
RHOSP 서비스 컨테이너가
Up이라는 것을 나타내는 다음과 유사한 출력이 표시됩니다.memcached Up 3 hours (healthy) haproxy Up 3 hours rabbitmq Up 3 hours (healthy) mysql Up 3 hours (healthy) iscsid Up 3 hours (healthy) keystone Up 3 hours (healthy) keystone_cron Up 3 hours (healthy) neutron_api Up 3 hours (healthy) logrotate_crond Up 3 hours (healthy) neutron_dhcp Up 3 hours (healthy) neutron_l3_agent Up 3 hours (healthy) neutron_ovs_agent Up 3 hours (healthy) ironic_api Up 3 hours (healthy) ironic_conductor Up 3 hours (healthy) ironic_neutron_agent Up 3 hours (healthy) ironic_pxe_tftp Up 3 hours (healthy) ironic_pxe_http Up 3 hours (unhealthy) ironic_inspector Up 3 hours (healthy) ironic_inspector_dnsmasq Up 3 hours (healthy) neutron-dnsmasq-qdhcp-30d628e6-45e6-499d-8003-28c0bc066487 Up 3 hours ...stack사용자를 초기화하여 명령줄 툴을 사용할 수 있는지 확인합니다.$ source ~/stackrc프롬프트가
(undercloud)표시되면 OpenStack 명령이 언더클라우드에 대해 인증 및 실행됨을 나타냅니다.샘플 출력
(undercloud) [stack@director ~]$director 설치가 완료되었습니다. 이제 director 명령행 툴을 사용할 수 있습니다.