director는 분리된 오버클라우드 네트워크를 구성하는 방법을 제공합니다. 즉, Overcloud 환경은 네트워크 트래픽 유형을 다른 네트워크로 분리하여 네트워크 트래픽을 특정 네트워크 인터페이스 또는 본딩에 할당합니다. 분리된 네트워크를 구성한 후 director는 격리된 네트워크를 사용하도록 OpenStack 서비스를 구성합니다. 격리된 네트워크가 구성되지 않은 경우 모든 서비스가 프로비저닝 네트워크에서 실행됩니다.
먼저 Overcloud에는 네트워크 인터페이스 템플릿 세트가 필요합니다. 이러한 템플릿을 사용자 지정하여 역할별로 노드 인터페이스를 구성합니다. 이러한 템플릿은 YAML 형식의 표준 Heat 템플릿입니다. director에는 시작하기 위한 예제 템플릿 세트가 포함되어 있습니다.
/usr/share/openstack-tripleo-heat-templates/network/config/single-nic-vlans - 역할별로 VLAN을 구성하는 단일 NIC에 대한 템플릿이 포함된 디렉터리입니다.
/usr/share/openstack-tripleo-heat-templates/network/config/bond-with-vlans - 역할별로 결합된 NIC 구성에 대한 템플릿이 포함된 디렉터리입니다.
다음으로 네트워크 환경 파일을 만듭니다. 이 파일은 Overcloud의 네트워크 환경을 설명하고 네트워크 인터페이스 구성 템플릿을 가리키는 Heat 환경 파일입니다. 이 파일은 또한 IP 주소 범위와 함께 네트워크의 서브넷 및 VLAN을 정의합니다. 로컬 환경에 대해 이러한 값을 사용자 지정합니다.
이 시나리오에서는 /home/stack/network-environment.yaml 로 저장된 다음 네트워크 환경 파일을 사용합니다.
resource_registry:
OS::TripleO::BlockStorage::Net::SoftwareConfig: /home/stack/templates/my-overcloud/network/config/bond-with-vlans/cinder-storage.yaml
OS::TripleO::Compute::Net::SoftwareConfig: /home/stack/templates/my-overcloud/network/config/bond-with-vlans/compute.yaml
OS::TripleO::Controller::Net::SoftwareConfig: /home/stack/templates/my-overcloud/network/config/bond-with-vlans/controller.yaml
OS::TripleO::ObjectStorage::Net::SoftwareConfig: /home/stack/templates/my-overcloud/network/config/bond-with-vlans/swift-storage.yaml
OS::TripleO::CephStorage::Net::SoftwareConfig: /home/stack/templates/my-overcloud/network/config/bond-with-vlans/ceph-storage.yaml
parameter_defaults:
InternalApiNetCidr: 172.16.20.0/24
TenantNetCidr: - 172.16.22.0/24
StorageNetCidr: 172.16.21.0/24
StorageMgmtNetCidr: 172.16.19.0/24
ExternalNetCidr: 172.16.23.0/24
InternalApiAllocationPools: [{'start': '172.16.20.10', 'end': '172.16.20.200'}]
TenantAllocationPools: [{'start': '172.16.22.10', 'end': '172.16.22.200'}]
StorageAllocationPools: [{'start': '172.16.21.10', 'end': '172.16.21.200'}]
StorageMgmtAllocationPools: [{'start': '172.16.19.10', 'end': '172.16.19.200'}]
# Leave room for floating IPs in the External allocation pool
ExternalAllocationPools: [{'start': '172.16.23.10', 'end': '172.16.23.60'}]
# Set to the router gateway on the external network
ExternalInterfaceDefaultRoute: 172.16.23.1
# Gateway router for the provisioning network (or Undercloud IP)
ControlPlaneDefaultRoute: 192.0.2.254
# The IP address of the EC2 metadata server. Generally the IP of the Undercloud
EC2MetadataIp: 192.0.2.1
# Define the DNS servers (maximum 2) for the overcloud nodes
DnsServers: ["8.8.8.8","8.8.4.4"]
InternalApiNetworkVlanID: 201
StorageNetworkVlanID: 202
StorageMgmtNetworkVlanID: 203
TenantNetworkVlanID: 204
ExternalNetworkVlanID: 100
# Set to "br-ex" if using floating IPs on native VLAN on bridge br-ex
NeutronExternalNetworkBridge: "''"
# Customize bonding options if required
BondInterfaceOvsOptions:
"bond_mode=balance-tcp lacp=active other-config:lacp-fallback-ab=true"
resource_registry:
OS::TripleO::BlockStorage::Net::SoftwareConfig: /home/stack/templates/my-overcloud/network/config/bond-with-vlans/cinder-storage.yaml
OS::TripleO::Compute::Net::SoftwareConfig: /home/stack/templates/my-overcloud/network/config/bond-with-vlans/compute.yaml
OS::TripleO::Controller::Net::SoftwareConfig: /home/stack/templates/my-overcloud/network/config/bond-with-vlans/controller.yaml
OS::TripleO::ObjectStorage::Net::SoftwareConfig: /home/stack/templates/my-overcloud/network/config/bond-with-vlans/swift-storage.yaml
OS::TripleO::CephStorage::Net::SoftwareConfig: /home/stack/templates/my-overcloud/network/config/bond-with-vlans/ceph-storage.yaml
parameter_defaults:
InternalApiNetCidr: 172.16.20.0/24
TenantNetCidr: - 172.16.22.0/24
StorageNetCidr: 172.16.21.0/24
StorageMgmtNetCidr: 172.16.19.0/24
ExternalNetCidr: 172.16.23.0/24
InternalApiAllocationPools: [{'start': '172.16.20.10', 'end': '172.16.20.200'}]
TenantAllocationPools: [{'start': '172.16.22.10', 'end': '172.16.22.200'}]
StorageAllocationPools: [{'start': '172.16.21.10', 'end': '172.16.21.200'}]
StorageMgmtAllocationPools: [{'start': '172.16.19.10', 'end': '172.16.19.200'}]
# Leave room for floating IPs in the External allocation pool
ExternalAllocationPools: [{'start': '172.16.23.10', 'end': '172.16.23.60'}]
# Set to the router gateway on the external network
ExternalInterfaceDefaultRoute: 172.16.23.1
# Gateway router for the provisioning network (or Undercloud IP)
ControlPlaneDefaultRoute: 192.0.2.254
# The IP address of the EC2 metadata server. Generally the IP of the Undercloud
EC2MetadataIp: 192.0.2.1
# Define the DNS servers (maximum 2) for the overcloud nodes
DnsServers: ["8.8.8.8","8.8.4.4"]
InternalApiNetworkVlanID: 201
StorageNetworkVlanID: 202
StorageMgmtNetworkVlanID: 203
TenantNetworkVlanID: 204
ExternalNetworkVlanID: 100
# Set to "br-ex" if using floating IPs on native VLAN on bridge br-ex
NeutronExternalNetworkBridge: "''"
# Customize bonding options if required
BondInterfaceOvsOptions:
"bond_mode=balance-tcp lacp=active other-config:lacp-fallback-ab=true"
Copy to ClipboardCopied!Toggle word wrapToggle overflow
director는 외부 로드 밸런서가 HAProxy를 내부적으로 관리하는 대신 가상 IP를 호스팅하는 Overcloud를 생성하는 방법을 제공합니다. 이 구성에서는 Overcloud 배포가 시작되기 전에 여러 가상 IP가 격리된 네트워크당 하나 이상 Redis 서비스용으로 구성된 외부 로드 밸런서에 구성된 것으로 가정합니다. Overcloud 노드 NIC 구성이 허용하는 경우 일부 가상 IP가 같을 수 있습니다.
이전 장의 설정을 사용하여 외부 로드 밸런서를 구성했습니다. 이러한 설정에는 director가 Overcloud 노드에 할당하고 서비스 설정에 사용하는 IP가 포함됩니다.
다음은 외부 로드 밸런서를 사용하는 오버클라우드 구성이 포함된 Heat 환경 파일(external-lb.yaml)의 예입니다.
parameter_defaults:
# The VIP that the balancer holds on the ControlPlane.
ControlPlaneIP: 192.0.2.250
# The VIPs that the balancer holds for each network. These are the addresses previously binded in the load balancing configuration.
ExternalNetworkVip: 172.16.23.250
InternalApiNetworkVip: 172.16.20.250
StorageNetworkVip: 172.16.21.250
StorageMgmtNetworkVip: 172.16.19.250
# The VIP which the balancer holds, on the InternalApi, for the Redis service.
ServiceVips:
redis: 172.16.20.249
# IPs assignments for the Overcloud Controller nodes. Ensure these IPs are from each respective allocation pools defined in the network environment file.
ControllerIPs:
external:
- 172.16.23.150
- 172.16.23.151
- 172.16.23.152
internal_api:
- 172.16.20.150
- 172.16.20.151
- 172.16.20.152
storage:
- 172.16.21.150
- 172.16.21.151
- 172.16.21.152
storage_mgmt:
- 172.16.19.150
- 172.16.19.151
- 172.16.19.152
tenant:
- 172.16.22.150
- 172.16.22.151
- 172.16.22.152
# CIDRs
external_cidr: "24"
internal_api_cidr: "24"
storage_cidr: "24"
storage_mgmt_cidr: "24"
tenant_cidr: "24"
RedisPassword: p@55w0rd!
ServiceNetMap:
NeutronTenantNetwork: tenant
CeilometerApiNetwork: internal_api
MongoDbNetwork: internal_api
CinderApiNetwork: internal_api
CinderIscsiNetwork: storage
GlanceApiNetwork: storage
GlanceRegistryNetwork: internal_api
KeystoneAdminApiNetwork: internal_api
KeystonePublicApiNetwork: internal_api
NeutronApiNetwork: internal_api
HeatApiNetwork: internal_api
NovaApiNetwork: internal_api
NovaMetadataNetwork: internal_api
NovaVncProxyNetwork: internal_api
SwiftMgmtNetwork: storage_mgmt
SwiftProxyNetwork: storage
HorizonNetwork: internal_api
MemcachedNetwork: internal_api
RabbitMqNetwork: internal_api
RedisNetwork: internal_api
MysqlNetwork: internal_api
CephClusterNetwork: storage_mgmt
CephPublicNetwork: storage
ControllerHostnameResolveNetwork: internal_api
ComputeHostnameResolveNetwork: internal_api
BlockStorageHostnameResolveNetwork: internal_api
ObjectStorageHostnameResolveNetwork: internal_api
CephStorageHostnameResolveNetwork: storage
parameter_defaults:
# The VIP that the balancer holds on the ControlPlane.
ControlPlaneIP: 192.0.2.250
# The VIPs that the balancer holds for each network. These are the addresses previously binded in the load balancing configuration.
ExternalNetworkVip: 172.16.23.250
InternalApiNetworkVip: 172.16.20.250
StorageNetworkVip: 172.16.21.250
StorageMgmtNetworkVip: 172.16.19.250
# The VIP which the balancer holds, on the InternalApi, for the Redis service.
ServiceVips:
redis: 172.16.20.249
# IPs assignments for the Overcloud Controller nodes. Ensure these IPs are from each respective allocation pools defined in the network environment file.
ControllerIPs:
external:
- 172.16.23.150
- 172.16.23.151
- 172.16.23.152
internal_api:
- 172.16.20.150
- 172.16.20.151
- 172.16.20.152
storage:
- 172.16.21.150
- 172.16.21.151
- 172.16.21.152
storage_mgmt:
- 172.16.19.150
- 172.16.19.151
- 172.16.19.152
tenant:
- 172.16.22.150
- 172.16.22.151
- 172.16.22.152
# CIDRs
external_cidr: "24"
internal_api_cidr: "24"
storage_cidr: "24"
storage_mgmt_cidr: "24"
tenant_cidr: "24"
RedisPassword: p@55w0rd!
ServiceNetMap:
NeutronTenantNetwork: tenant
CeilometerApiNetwork: internal_api
MongoDbNetwork: internal_api
CinderApiNetwork: internal_api
CinderIscsiNetwork: storage
GlanceApiNetwork: storage
GlanceRegistryNetwork: internal_api
KeystoneAdminApiNetwork: internal_api
KeystonePublicApiNetwork: internal_api
NeutronApiNetwork: internal_api
HeatApiNetwork: internal_api
NovaApiNetwork: internal_api
NovaMetadataNetwork: internal_api
NovaVncProxyNetwork: internal_api
SwiftMgmtNetwork: storage_mgmt
SwiftProxyNetwork: storage
HorizonNetwork: internal_api
MemcachedNetwork: internal_api
RabbitMqNetwork: internal_api
RedisNetwork: internal_api
MysqlNetwork: internal_api
CephClusterNetwork: storage_mgmt
CephPublicNetwork: storage
ControllerHostnameResolveNetwork: internal_api
ComputeHostnameResolveNetwork: internal_api
BlockStorageHostnameResolveNetwork: internal_api
ObjectStorageHostnameResolveNetwork: internal_api
CephStorageHostnameResolveNetwork: storage
Copy to ClipboardCopied!Toggle word wrapToggle overflow
parameter_defaults 섹션에는 OpenStack의 각 네트워크에 대한 VIP 및 IP 할당이 포함되어 있습니다. 이러한 설정은 로드 밸런서의 각 서비스에 대해 동일한 IP 구성과 일치해야 합니다. 이 섹션에서는 Redis 서비스(RedisPassword)의 관리 암호도 정의합니다. 이 섹션에는 각 OpenStack 서비스를 특정 네트워크에 매핑하는 ServiceNetMap 매개변수도 포함되어 있습니다. 로드 밸런싱 구성을 사용하려면 이 서비스를 다시 매핑해야 합니다.