Heat Stack per il Networking Inter-AZ di Fujitsu K5

2016-10-21

Heat Stack per il Networking Inter-AZ di Fujitsu K5

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à.

nc-overview

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…

Contenuto incorporato

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

Mostra caratteri nascosti

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 …

networkconnector

Happy Stacking!

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

← All posts