Pile Heat de réseau inter-ZA pour Fujitsu K5

2016-10-21

Pile Heat de réseau inter-ZA pour Fujitsu K5

Machine-translated — the English original is authoritative.

Aujourd'hui, nous examinerons une pile Heat simple pour mettre en œuvre le connecteur réseau amélioré que la plateforme K5 implémente afin de relier les sous-réseaux au sein des projets à travers les zones de disponibilité.

nc-overview

Chez Fujitsu, notre équipe d'ingénierie, actuellement classée au 5e rang pour le nombre de lignes de code validées dans le projet OpenStack (bravo à vous), a amélioré Neutron dans notre plateforme K5 pour lui offrir la même capacité de domaine de défaillance matérielle que celle présente aujourd'hui dans le projet Nova. Cela signifie que le service Neutron peut être réparti sur plusieurs zones de disponibilité, ce qui facilite à son tour la répartition de vos zones de disponibilité sur des centres de données distants.

Consultez cette vidéo pour les détails techniques – à partir de 14 minutes…

Contenu intégré

En conséquence de cette amélioration, nous avons développé un nouveau composant Neutron K5 appelé connecteur réseau, utilisé pour relier les réseaux d'un même projet situés dans des zones de disponibilité distinctes. Ils doivent avoir des CIDR de sous-réseau différents.

La pile Heat suivante crée deux réseaux privés, un dans chaque zone de disponibilité, puis les relie à l'aide du nouveau connecteur réseau et de ses composants d'extrémité.

Ce modèle devrait vous permettre de démarrer rapidement si vous souhaitez le tester.

Ce fichier contient des caractères Unicode cachés ou bidirectionnels qui peuvent être interprétés ou compilés différemment de ce qui est affiché ci-dessous. Pour les examiner, ouvrez le fichier dans un éditeur qui révèle les caractères Unicode cachés.
En savoir plus sur les caractères Unicode bidirectionnels

Afficher les caractères cachés

heat_template_version: 2013-05-23
# Auteur : Graham Land
# Date : 21/10/2016
# Objectif : Créer deux sous-réseaux, un dans chaque zone de disponibilité, au sein du même projet, puis relier ces sous-réseaux
# à l'aide d'un connecteur réseau. Les sous-réseaux sont également configurés avec les nouvelles routes.
#
# Twitter : @allthingsclowd
# Blog : https://allthingscloud.eu
description : Exemple de création et de liaison de deux réseaux à travers des ZA au sein du même projet sur l'IaaS Fujitsu K5
# Paramètres d'entrée
parameters:
az1:
type: string
label: Zone de disponibilité
description: Région ZA à utiliser
default: "uk-1a"
az1_net_name:
type: string
label: Nom du réseau
description: Nom du réseau
default: "demo_net_az1"
az1_subnet_name:
type: string
label: Nom du sous-réseau
description: Nom du sous-réseau
default: "demo_subnet_az1"
az1_subnet_CIDR:
type: string
label: CIDR du sous-réseau
description: CIDR du sous-réseau
default: "192.168.100.0/24"
az1_subnet_DHCP_Start_Address:
type: string
label: Adresse de début du pool DHCP du sous-réseau
description: Adresse de début du pool DHCP du sous-réseau
default: "192.168.100.100"
az1_subnet_DHCP_End_Address:
type: string
label: Adresse de fin du pool DHCP du sous-réseau
description: Adresse de fin du pool DHCP du sous-réseau
default: "192.168.100.150"
az1_subnet_DNS:
type: string
label: DNS du sous-réseau
description: DNS du sous-réseau
default:
– "62.60.39.9"
– "62.60.39.10"
az1_subnet_Routes:
type: string
label: Routes hôtes du sous-réseau
description: Routes hôtes du sous-réseau
default:
– "nexthop": "192.168.100.253"
"destination": "10.10.10.0/24"
az1_subnet_Gateway:
type: string
label: Adresse de passerelle du sous-réseau
description: Adresse de passerelle du sous-réseau
default: "192.168.100.254"
az1_EndPoint_ip:
type: string
label: Adresse de point de terminaison du sous-réseau
description: Adresse de point de terminaison du sous-réseau
default: "192.168.100.253"
az2:
type: string
label: Zone de disponibilité
description: Région ZA à utiliser
default: "uk-1b"
az2_net_name:
type: string
label: Nom du réseau
description: Nom du réseau
default: "demo_net_az2"
az2_subnet_name:
type: string
label: Nom du sous-réseau
description: Nom du sous-réseau
default: "demo_subnet_az2"
az2_subnet_CIDR:
type: string
label: CIDR du sous-réseau
description: CIDR du sous-réseau
default: "10.10.10.0/24"
az2_subnet_DHCP_Start_Address:
type: string
label: Adresse de début du pool DHCP du sous-réseau
description: Adresse de début du pool DHCP du sous-réseau
default: "10.10.10.100"
az2_subnet_DHCP_End_Address:
type: string
label: Adresse de fin du pool DHCP du sous-réseau
description: Adresse de fin du pool DHCP du sous-réseau
default: "10.10.10.150"
az2_subnet_DNS:
type: string
label: DNS du sous-réseau
description: DNS du sous-réseau
default:
– "62.60.42.9"
– "62.60.42.10"
az2_subnet_Routes:
type: string
label: Routes hôtes du sous-réseau
description: Routes hôtes du sous-réseau
default:
– "nexthop": "10.10.10.253"
"destination": "192.168.100.0/24"
az2_subnet_Gateway:
type: string
label: Adresse de passerelle du sous-réseau
description: Adresse de passerelle du sous-réseau
default: "10.10.10.254"
az2_EndPoint_ip:
type: string
label: Adresse de point de terminaison du sous-réseau
description: Adresse de point de terminaison du sous-réseau
default: "10.10.10.253"
# Ressources d'infrastructure K5 à créer
resources:
# Créer un réseau privé dans la zone de disponibilité 1
private_net_az1:
type: OS::Neutron::Net
properties:
availability_zone: { get_param: az1 }
name: { get_param: az1_net_name }
# Créer un nouveau sous-réseau sur le réseau privé
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 }
# Créer un réseau privé dans la zone de disponibilité 1
private_net_az2:
type: OS::Neutron::Net
properties:
availability_zone: { get_param: az2 }
name: { get_param: az2_net_name }
# Créer un nouveau sous-réseau sur le réseau privé
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 }
# Créer un groupe de sécurité
server_security_group1:
type: OS::Neutron::SecurityGroup
properties:
description: Ajouter des règles de groupe de sécurité pour le serveur
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
############################### Interconnexion inter-ZA ###########################################################
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 Formation Boutique Blog À propos
© 2016 GitHub, Inc. Conditions

voir le code brut
K5NetworkConnectorDemo.yml
hébergé avec ❤ par GitHub

Maintenant, tout ce que vous avez à faire est de lancer une instance sur chaque sous-réseau et vous verrez que vous disposez d'une connectivité de couche 3 entre les instances …

networkconnector

Bonne création de piles !

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

← All posts