Pila de Calor de Red Inter-Zona de Fujitsu K5

2016-10-21

Pila de Calor de Red Inter-Zona de Fujitsu K5

Machine-translated — the English original is authoritative.

Hoy analizaremos una pila de Calor (Heat) sencilla para implementar el conector de red mejorado que la plataforma K5 implementa para enlazar subredes dentro de proyectos a través de zonas de disponibilidad.

nc-overview

En Fujitsu, nuestro equipo de ingeniería, que actualmente ocupa el número 5 en líneas de código comprometidas con el proyecto OpenStack (¡buen trabajo, chicos!), ha mejorado Neutron en nuestra plataforma K5 para dotarla de la misma capacidad de dominio de fallo de hardware que está presente en el proyecto Nova hoy en día. Esto significa que el servicio Neutron puede dividirse entre zonas de disponibilidad, lo que a su vez facilita dividir tus zonas de disponibilidad entre centros de datos remotos.

Consulta este vídeo para los detalles técnicos – a partir de los 14 minutos…

Contenido incrustado

Como resultado de esta mejora, hemos desarrollado un nuevo componente de Neutron para K5 llamado conector de red, que se utiliza para enlazar redes del mismo proyecto que se encuentran en zonas de disponibilidad separadas. Deben tener diferentes CIDR de subred.

La siguiente pila de Calor crea dos redes privadas, una en cada zona de disponibilidad, y luego las une utilizando el nuevo conector de red y sus componentes de punto final.

Esta plantilla debería ponerte en marcha rápidamente si deseas probarla.

Este archivo contiene texto Unicode oculto o bidireccional que puede interpretarse o compilarse de manera diferente a lo que aparece a continuación. Para revisarlo, abre el archivo en un editor que revele caracteres Unicode ocultos.
Más información sobre caracteres Unicode bidireccionales

Mostrar caracteres ocultos

heat_template_version: 2013-05-23
# Autor: Graham Land
# Fecha: 21/10/2016
# Propósito: Crear dos subredes, una en cada zona de disponibilidad, dentro del mismo proyecto y luego unir estas subredes
# utilizando un conector de red. Las subredes también se configuran con las nuevas rutas.
#
# Twitter: @allthingsclowd
# Blog: https://allthingscloud.eu
description: Ejemplo de cómo crear y unir dos redes a través de ZAs dentro del mismo proyecto en Fujitsu K5 IaaS
# Parámetros de entrada
parameters:
az1:
type: string
label: Zona de disponibilidad
description: Región ZA a utilizar
default: "uk-1a"
az1_net_name:
type: string
label: Nombre de la red
description: Nombre de la red
default: "demo_net_az1"
az1_subnet_name:
type: string
label: Nombre de la subred
description: Nombre de la subred
default: "demo_subnet_az1"
az1_subnet_CIDR:
type: string
label: CIDR de la subred
description: CIDR de la subred
default: "192.168.100.0/24"
az1_subnet_DHCP_Start_Address:
type: string
label: Dirección de inicio del grupo DHCP de la subred
description: Dirección de inicio del grupo DHCP de la subred
default: "192.168.100.100"
az1_subnet_DHCP_End_Address:
type: string
label: Dirección final del grupo DHCP de la subred
description: Dirección final del grupo DHCP de la subred
default: "192.168.100.150"
az1_subnet_DNS:
type: string
label: DNS de la subred
description: DNS de la subred
default:
– "62.60.39.9"
– "62.60.39.10"
az1_subnet_Routes:
type: string
label: Rutas de host de la subred
description: Rutas de host de la subred
default:
– "nexthop": "192.168.100.253"
"destination": "10.10.10.0/24"
az1_subnet_Gateway:
type: string
label: Dirección de puerta de enlace de la subred
description: Dirección de puerta de enlace de la subred
default: "192.168.100.254"
az1_EndPoint_ip:
type: string
label: Dirección de punto final de la subred
description: Dirección de punto final de la subred
default: "192.168.100.253"
az2:
type: string
label: Zona de disponibilidad
description: Región ZA a utilizar
default: "uk-1b"
az2_net_name:
type: string
label: Nombre de la red
description: Nombre de la red
default: "demo_net_az2"
az2_subnet_name:
type: string
label: Nombre de la subred
description: Nombre de la subred
default: "demo_subnet_az2"
az2_subnet_CIDR:
type: string
label: CIDR de la subred
description: CIDR de la subred
default: "10.10.10.0/24"
az2_subnet_DHCP_Start_Address:
type: string
label: Dirección de inicio del grupo DHCP de la subred
description: Dirección de inicio del grupo DHCP de la subred
default: "10.10.10.100"
az2_subnet_DHCP_End_Address:
type: string
label: Dirección final del grupo DHCP de la subred
description: Dirección final del grupo DHCP de la subred
default: "10.10.10.150"
az2_subnet_DNS:
type: string
label: DNS de la subred
description: DNS de la subred
default:
– "62.60.42.9"
– "62.60.42.10"
az2_subnet_Routes:
type: string
label: Rutas de host de la subred
description: Rutas de host de la subred
default:
– "nexthop": "10.10.10.253"
"destination": "192.168.100.0/24"
az2_subnet_Gateway:
type: string
label: Dirección de puerta de enlace de la subred
description: Dirección de puerta de enlace de la subred
default: "10.10.10.254"
az2_EndPoint_ip:
type: string
label: Dirección de punto final de la subred
description: Dirección de punto final de la subred
default: "10.10.10.253"
# Recursos de infraestructura K5 a construir
resources:
# Crear una red privada en la zona de disponibilidad 1
private_net_az1:
type: OS::Neutron::Net
properties:
availability_zone: { get_param: az1 }
name: { get_param: az1_net_name }
# Crear una nueva subred en la red privada
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 }
# Crear una red privada en la zona de disponibilidad 1
private_net_az2:
type: OS::Neutron::Net
properties:
availability_zone: { get_param: az2 }
name: { get_param: az2_net_name }
# Crear una nueva subred en la red privada
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 }
# Crear un grupo de seguridad
server_security_group1:
type: OS::Neutron::SecurityGroup
properties:
description: Añadir reglas de grupo de seguridad para el servidor
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
############################### Interconexión 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 }
Contactar Tienda de formación de GitHub API Blog Acerca de
© 2016 GitHub, Inc. Términos Priv

ver original
K5NetworkConnectorDemo.yml
alojado con ❤ por GitHub

Ahora solo necesitas iniciar una instancia en cada subred y verás que tienes conectividad de capa 3 entre las instancias …

networkconnector

¡Feliz apilamiento!

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

← All posts