Heat Stack per il Networking Inter-AZ di Fujitsu K5
2016-10-21
Machine-translated — the English original is authoritative.
Oggi esamineremo una semplice heat stack per implementare il connettore di rete avanzato che la piattaforma K5 utilizza per collegare le subnet all'interno dei progetti attraverso le zone di disponibilità.

Presso Fujitsu, il nostro team di ingegneria, attualmente al quinto posto per numero di righe di codice impegnate nel progetto OpenStack (complimenti ragazzi), ha potenziato neutron nella nostra piattaforma K5 per conferirgli la stessa capacità di dominio di guasto hardware presente oggi nel progetto nova. Ciò significa che il servizio neutron può essere suddiviso tra zone di disponibilità, il che a sua volta facilita la suddivisione delle zone di disponibilità tra data center remoti.
Guarda questo video per i dettagli tecnici – a 14 minuti…
Come risultato di questo potenziamento, abbiamo sviluppato un nuovo componente neutron K5 chiamato network connector, utilizzato per collegare le reti dello stesso progetto che si trovano in zone di disponibilità separate. Devono avere CIDR di subnet diversi.
La seguente heat stack crea due reti private, una in ciascuna zona di disponibilità, e poi le unisce utilizzando il nuovo network connector e i suoi componenti endpoint.
Questo template dovrebbe consentirti di iniziare rapidamente se desideri provarlo.
Questo file contiene caratteri Unicode nascosti o bidirezionali che potrebbero essere interpretati o compilati in modo diverso da quanto appare di seguito. Per esaminarli, apri il file in un editor che riveli i caratteri Unicode nascosti.
Maggiori informazioni sui caratteri Unicode bidirezionali
| heat_template_version: 2013-05-23 | |
| # Autore: Graham Land | |
| # Data: 21/10/2016 | |
| # Scopo: Crea due subnet, una in ciascuna zona di disponibilità, all'interno dello stesso progetto e poi unisci queste subnet | |
| # utilizzando un network connector. Le subnet vengono anche configurate con le nuove route. | |
| # | |
| # Twitter: @allthingsclowd | |
| # Blog: https://allthingscloud.eu | |
| description: Esempio di come creare e unire due reti attraverso AZ all'interno dello stesso progetto su Fujitsu K5 IaaS | |
| # Parametri di input | |
| parameters: | |
| az1: | |
| type: string | |
| label: Availability Zone | |
| description: Region AZ to use | |
| default: "uk-1a" | |
| az1_net_name: | |
| type: string | |
| label: Network name | |
| description: Network name | |
| default: "demo_net_az1" | |
| az1_subnet_name: | |
| type: string | |
| label: Subnet name | |
| description: Subnet name | |
| default: "demo_subnet_az1" | |
| az1_subnet_CIDR: | |
| type: string | |
| label: Subnet CIDR | |
| description: Subnet CIDR | |
| default: "192.168.100.0/24" | |
| az1_subnet_DHCP_Start_Address: | |
| type: string | |
| label: Subnet DHCP Pool start address | |
| description: Subnet DHCP Pool start address | |
| default: "192.168.100.100" | |
| az1_subnet_DHCP_End_Address: | |
| type: string | |
| label: Subnet DHCP Pool end address | |
| description: Subnet DHCP Pool end address | |
| default: "192.168.100.150" | |
| az1_subnet_DNS: | |
| type: string | |
| label: Subnet DNS | |
| description: Subnet DNS | |
| default: | |
| – "62.60.39.9" | |
| – "62.60.39.10" | |
| az1_subnet_Routes: | |
| type: string | |
| label: Subnet Host Routes | |
| description: Subnet Host Routes | |
| default: | |
| – "nexthop": "192.168.100.253" | |
| "destination": "10.10.10.0/24" | |
| az1_subnet_Gateway: | |
| type: string | |
| label: Subnet gateway address | |
| description: Subnet gateway address | |
| default: "192.168.100.254" | |
| az1_EndPoint_ip: | |
| type: string | |
| label: Subnet endpoint address | |
| description: Subnet endpoint address | |
| default: "192.168.100.253" | |
| az2: | |
| type: string | |
| label: Availability Zone | |
| description: Region AZ to use | |
| default: "uk-1b" | |
| az2_net_name: | |
| type: string | |
| label: Network name | |
| description: Network name | |
| default: "demo_net_az2" | |
| az2_subnet_name: | |
| type: string | |
| label: Subnet name | |
| description: Subnet name | |
| default: "demo_subnet_az2" | |
| az2_subnet_CIDR: | |
| type: string | |
| label: Subnet CIDR | |
| description: Subnet CIDR | |
| default: "10.10.10.0/24" | |
| az2_subnet_DHCP_Start_Address: | |
| type: string | |
| label: Subnet DHCP Pool start address | |
| description: Subnet DHCP Pool start address | |
| default: "10.10.10.100" | |
| az2_subnet_DHCP_End_Address: | |
| type: string | |
| label: Subnet DHCP Pool end address | |
| description: Subnet DHCP Pool end address | |
| default: "10.10.10.150" | |
| az2_subnet_DNS: | |
| type: string | |
| label: Subnet DNS | |
| description: Subnet DNS | |
| default: | |
| – "62.60.42.9" | |
| – "62.60.42.10" | |
| az2_subnet_Routes: | |
| type: string | |
| label: Subnet Host Routes | |
| description: Subnet Host Routes | |
| default: | |
| – "nexthop": "10.10.10.253" | |
| "destination": "192.168.100.0/24" | |
| az2_subnet_Gateway: | |
| type: string | |
| label: Subnet gateway address | |
| description: Subnet gateway address | |
| default: "10.10.10.254" | |
| az2_EndPoint_ip: | |
| type: string | |
| label: Subnet endpoint address | |
| description: Subnet endpoint address | |
| default: "10.10.10.253" | |
| # Risorse dell'infrastruttura K5 da creare | |
| resources: | |
| # Crea una rete privata nella zona di disponibilità 1 | |
| private_net_az1: | |
| type: OS::Neutron::Net | |
| properties: | |
| availability_zone: { get_param: az1 } | |
| name: { get_param: az1_net_name } | |
| # Crea una nuova subnet sulla rete privata | |
| private_subnet_az1: | |
| type: OS::Neutron::Subnet | |
| depends_on: private_net_az1 | |
| properties: | |
| availability_zone: { get_param: az1 } | |
| name: { get_param: az1_subnet_name } | |
| network_id: { get_resource: private_net_az1 } | |
| cidr: { get_param: az1_subnet_CIDR } | |
| gateway_ip: { get_param: az1_subnet_Gateway } | |
| allocation_pools: | |
| – start: { get_param: az1_subnet_DHCP_Start_Address } | |
| end: { get_param: az1_subnet_DHCP_End_Address } | |
| dns_nameservers: { get_param: az1_subnet_DNS } | |
| host_routes: { get_param: az1_subnet_Routes } | |
| # Crea una rete privata nella zona di disponibilità 1 | |
| private_net_az2: | |
| type: OS::Neutron::Net | |
| properties: | |
| availability_zone: { get_param: az2 } | |
| name: { get_param: az2_net_name } | |
| # Crea una nuova subnet sulla rete privata | |
| private_subnet_az2: | |
| type: OS::Neutron::Subnet | |
| depends_on: private_net_az2 | |
| properties: | |
| availability_zone: { get_param: az2 } | |
| name: { get_param: az2_subnet_name } | |
| network_id: { get_resource: private_net_az2 } | |
| cidr: { get_param: az2_subnet_CIDR } | |
| gateway_ip: { get_param: az2_subnet_Gateway } | |
| allocation_pools: | |
| – start: { get_param: az2_subnet_DHCP_Start_Address } | |
| end: { get_param: az2_subnet_DHCP_End_Address } | |
| dns_nameservers: { get_param: az2_subnet_DNS } | |
| host_routes: { get_param: az2_subnet_Routes } | |
| # Crea un gruppo di sicurezza | |
| server_security_group1: | |
| type: OS::Neutron::SecurityGroup | |
| properties: | |
| description: Add security group rules for server | |
| name: NetworkConnector | |
| rules: | |
| – remote_ip_prefix: 0.0.0.0/0 | |
| protocol: tcp | |
| port_range_min: 1 | |
| port_range_max: 65535 | |
| – remote_ip_prefix: 0.0.0.0/0 | |
| protocol: udp | |
| port_range_min: 1 | |
| port_range_max: 65535 | |
| – remote_ip_prefix: 0.0.0.0/0 | |
| protocol: icmp | |
| ############################### Interconnessione AZ ########################################################### | |
| az1_nc_port: | |
| type: OS::Neutron::Port | |
| depends_on: [ server_security_group1 ] | |
| properties: | |
| availability_zone: { get_param: az1 } | |
| network_id: { get_resource: private_net_az1 } | |
| security_groups: [{ get_resource: server_security_group1 }] | |
| fixed_ips: | |
| – subnet_id: { get_resource: private_subnet_az1 } | |
| ip_address: { get_param: az1_EndPoint_ip } | |
| az2_nc_port: | |
| type: OS::Neutron::Port | |
| depends_on: [ server_security_group1 ] | |
| properties: | |
| availability_zone: { get_param: az2 } | |
| network_id: { get_resource: private_net_az2 } | |
| security_groups: [{ get_resource: server_security_group1 }] | |
| fixed_ips: | |
| – subnet_id: { get_resource: private_subnet_az2 } | |
| ip_address: { get_param: az2_EndPoint_ip } | |
| az1_network_connector: | |
| type: FCX::Neutron::NetworkConnector | |
| depends_on: [ az1_nc_port,az2_nc_port ] | |
| properties: | |
| name: "Demo_AZ_Network_Connector" | |
| az1_nc_endpoint: | |
| type: FCX::Neutron::NetworkConnectorEndpoint | |
| depends_on: [ az1_nc_port,az2_nc_port ] | |
| properties: | |
| endpoint_type: "availability_zone" | |
| name: "AZ1-NC-EP" | |
| network_connector_id: { get_resource: az1_network_connector } | |
| location: { get_param: az1 } | |
| az2_nc_endpoint: | |
| type: FCX::Neutron::NetworkConnectorEndpoint | |
| depends_on: [ az1_nc_port,az2_nc_port ] | |
| properties: | |
| endpoint_type: "availability_zone" | |
| name: "AZ2-NC-EP" | |
| network_connector_id: { get_resource: az1_network_connector } | |
| location: { get_param: az2 } | |
| az1_endpoint_connection: | |
| type: FCX::Neutron::NetworkConnectorEndpointConnection | |
| depends_on: [ az1_nc_port,az2_nc_port ] | |
| properties: | |
| port_id: { get_resource: az1_nc_port } | |
| network_connector_endpoint_id: { get_resource: az1_nc_endpoint } | |
| az2_endpoint_connection: | |
| type: FCX::Neutron::NetworkConnectorEndpointConnection | |
| depends_on: [ az1_nc_port,az2_nc_port ] | |
| properties: | |
| port_id: { get_resource: az2_nc_port } | |
| network_connector_endpoint_id: { get_resource: az2_nc_endpoint } | |
| Contact GitHub API Training Shop Blog About | |
| © 2016 GitHub, Inc. Terms Priv |
view raw
K5NetworkConnectorDemo.yml
hosted with ❤ by GitHub
Ora devi solo avviare un'istanza su ciascuna subnet e vedrai che hai connettività layer 3 tra le istanze …

Happy Stacking!
Originally published on allthingscloud.eu (2016-10-21).