Pile Heat de réseau inter-ZA pour Fujitsu K5
2016-10-21
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é.

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…
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 …

Bonne création de piles !
Originally published on allthingscloud.eu (2016-10-21).