8장. 여러 오버클라우드 배포
이 기능은 이번 릴리스에서 기술 프리뷰로 제공되므로 Red Hat에서 완전히 지원되지 않습니다. 테스트 용도로만 사용해야 하며 프로덕션 환경에 배포해서는 안 됩니다. 기술 프리뷰 기능에 대한 자세한 내용은 적용 범위 상세 정보를 참조하십시오.
단일 언더클라우드 노드를 사용하여 여러 오버클라우드를 배포 및 관리할 수 있습니다. 각 오버클라우드는 스택 리소스를 공유하지 않는 고유한 Heat 스택입니다. 이 기능은 언더클라우드와 오버클라우드의 비율이 1:1이어서 생성되는 오버헤드를 관리할 수 없는 환경에서 유용할 수 있습니다. 예를 들어 Edge, 다중 사이트, 다중 제품 환경 등이 있습니다.
다중 오버클라우드 시나리오의 오버클라우드 환경은 완전히 분리되어 있으며, source
명령을 사용하여 환경 간에 전환할 수 있습니다. 베어 메탈 프로비저닝에 Ironic을 사용하는 경우 모든 오버클라우드가 동일한 프로비저닝 네트워크에 있어야 합니다. 동일한 프로비저닝 네트워크를 사용할 수 없는 경우 배포된 서버 방법을 사용하여 라우팅된 네트워크로 여러 오버클라우드를 배포하여 HostnameMap
매개변수의 값이 각 오버클라우드의 스택 이름과 일치하는지 확인할 수 있습니다.
다음 워크플로우를 사용하여 기본 프로세스를 파악합니다.
- 언더클라우드 배포
- 언더클라우드를 정상적으로 배포합니다. 자세한 내용은 I 부. Director 설치 및 구성을 참조하십시오.
- 첫 번째 오버클라우드 배포
- 첫 번째 오버클라우드를 정상적으로 배포합니다. 자세한 내용은 II 부. 기본 오버클라우드 배포를 참조하십시오.
- 추가 오버클라우드 배포
-
새 오버클라우드에 사용할 새 환경 파일 세트를 생성합니다. 새 설정 파일 및 새
stack
이름과 함께 코어 heat 템플릿을 지정하여 배포 명령을 실행합니다.
8.1. 추가 오버클라우드 배포
이 예제에서 overcloud-one
은 기존 오버클라우드입니다. 새로운 오버클라우드인 overcloud-two
를 배포하려면 다음 단계를 완료합니다.
사전 요구 사항
추가 오버클라우드 배포를 시작하기 전에 환경에 다음 구성이 포함되어 있는지 확인합니다.
- 성공적으로 전개된 언더클라우드 및 오버클라우드 배포
- 추가 오버클라우드에 사용 가능한 노드
- 결과 스택에서 각 오버클라우드에 고유한 네트워크가 있도록 추가 오버클라우드에 사용할 사용자 지정 네트워크
절차
배포하려는 추가 오버클라우드에 사용할 새 디렉터리를 생성합니다.
$ mkdir ~/overcloud-two
새 디렉터리에서 추가 오버클라우드의 요구 사항에 맞는 새 환경 파일을 생성하고 기존 오버클라우드에서 관련 환경 파일을 복사합니다.
$ cp network-data.yaml ~/overcloud-two/network-data.yaml $ cp network-environment.yaml ~/overcloud-two/network-environment.yaml
새 오버클라우드의 사양에 따라 환경 파일을 수정합니다. 예를 들어 기존 오버클라우드의 이름은
overcloud-one
이고network-data.yaml
환경 파일에 정의된 VLAN을 사용합니다.- name: InternalApi name_lower: internal_api_cloud_1 service_net_map_replace: internal_api vip: true vlan: 20 ip_subnet: '172.17.0.0/24' allocation_pools: [{'start': '172.17.0.4', 'end': '172.17.0.250'}] ipv6_subnet: 'fd00:fd00:fd00:2000::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:2000::10', 'end': 'fd00:fd00:fd00:2000:ffff:ffff:ffff:fffe'}] mtu: 1500 - name: Storage ...
새 오버클라우드의 이름은
overcloud-two
이고 다른 VLAN을 사용합니다.~/overcloud-two/network-data.yaml
환경 파일을 편집하고 각 서브넷의 새 VLAN ID를 포함합니다. 또한 고유한name_lower
값을 정의하고service_net_map_replace
속성을 교체하려는 네트워크 이름으로 설정해야 합니다.- name: InternalApi name_lower: internal_api_cloud_2 service_net_map_replace: internal_api vip: true vlan: 21 ip_subnet: '172.21.0.0/24' allocation_pools: [{'start': '172.21.0.4', 'end': '172.21.0.250'}] ipv6_subnet: 'fd00:fd00:fd00:2001::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:2001::10', 'end': 'fd00:fd00:fd00:2001:ffff:ffff:ffff:fffe'}] mtu: 1500 - name: Storage ...
~/overcloud-two/network-environment.yaml
파일에서 다음 매개변수를 수정합니다.-
overcloud-two
에 고유한 외부 네트워크가 설정되도록ExternalNetValueSpecs
매개변수의{'provider:physical_network'}
속성에 특정 값을 입력하고'provider:network_type'
속성으로 네트워크 유형을 정의합니다. -
오버클라우드에 외부 액세스 권한이 있도록
ExternalInterfaceDefaultRoute
매개 변수를 외부 네트워크의 게이트웨이 IP 주소로 설정합니다. 오버클라우드가 DNS 서버에 연결할 수 있도록
DnsServers
매개변수를 DNS 서버의 IP 주소로 설정합니다.parameter_defaults: ... ExternalNetValueSpecs: {'provider:physical_network': 'external_2', 'provider:network_type': 'flat'} ExternalInterfaceDefaultRoute: 10.0.10.1 DnsServers: - 10.0.10.2 ...
-
openstack overcloud deploy
명령을 실행합니다.--templates
옵션으로 코어 heat 템플릿 컬렉션을 지정하고--stack
옵션으로 새stack
이름을 지정한 후~/overcloud-two
디렉터리의 새 환경 파일을 모두 지정합니다.$ openstack overcloud deploy --templates \ --stack overcloud-two \ ... -n ~/overcloud-two/network-data.yaml \ -e ~/overcloud-two/network-environment.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/net-single-nic-with-vlans.yaml \ ...
각 오버클라우드에 고유한 인증 정보 파일이 설정됩니다. 이 예제에서 배포 프로세스는 overcloud-one
용 overcloud-onerc
와 overcloud-two
용 overcloud-tworc
를 생성합니다. 오버클라우드와 상호 작용하려면 적절한 인증 정보 파일을 소싱해야 합니다. 예를 들어 첫 번째 오버클라우드의 인증 정보를 소싱하려면 다음 명령을 실행합니다.
$ source overcloud-onerc