Fujitsu K5 Inter-AZ-Netzwerk-Heat-Stack
2016-10-21
Machine-translated — the English original is authoritative.
Heute werden wir uns einen einfachen Heat-Stack ansehen, um den erweiterten Netzwerk-Connector zu implementieren, den die K5-Plattform zur Verbindung von Subnetzen innerhalb von Projekten über Verfügbarkeitszonen hinweg bereitstellt.

Bei Fujitsu hat unser Engineering-Team, das derzeit auf Platz 5 der nach Commit-Lines-of-Code im OpenStack-Projekt rangierenden Teams steht (Bravo an die Leute), Neutron in unserer K5-Plattform so erweitert, dass es dieselbe Fähigkeit zur Trennung von Hardware-Ausfallbereichen bietet, die heute im Nova-Projekt vorhanden ist. Das bedeutet, dass der Neutron-Dienst über Verfügbarkeitszonen hinweg aufgeteilt werden kann, was wiederum die Aufteilung Ihrer Verfügbarkeitszonen über entfernte Rechenzentren hinweg erleichtert.
Sehen Sie sich dieses Video für die technischen Details an – ab Minute 14…
Infolge dieser Erweiterung haben wir eine neue K5-Neutron-Komponente entwickelt, die als Netzwerk-Connector bezeichnet wird und zur Verbindung von Netzwerken im selben Projekt verwendet wird, die sich in separaten Verfügbarkeitszonen befinden. Sie müssen unterschiedliche Subnet-CIDRs aufweisen.
Der folgende Heat-Stack erstellt zwei private Netzwerke, eines in jeder Verfügbarkeitszone, und verbindet sie dann mithilfe des neuen Netzwerk-Connectors und seiner Endpunktkomponenten.
Diese Vorlage sollte Ihnen schnell zum Erfolg verhelfen, falls Sie sie testen möchten.
Diese Datei enthält versteckte oder bidirektionale Unicode-Zeichen, die anders interpretiert oder kompiliert werden könnten als das, was unten angezeigt wird. Um sie zu überprüfen, öffnen Sie die Datei in einem Editor, der versteckte Unicode-Zeichen anzeigt.
Mehr über bidirektionale Unicode-Zeichen erfahren
| heat_template_version: 2013-05-23 | |
| # Autor: Graham Land | |
| # Datum: 21.10.2016 | |
| # Zweck: Erstellen Sie zwei Subnetze, eines in jeder Verfügbarkeitszone, innerhalb desselben Projekts und verbinden Sie diese Subnetze dann | |
| # mithilfe eines Netzwerk-Connectors. Die Subnetze werden auch mit den neuen Routen konfiguriert. | |
| # | |
| # Twitter: @allthingsclowd | |
| # Blog: https://allthingscloud.eu | |
| description: Beispiel dafür, wie zwei Netzwerke über AZs hinweg innerhalb desselben Projekts auf Fujitsu K5 IaaS erstellt und verbunden werden | |
| # Eingabeparameter | |
| parameters: | |
| az1: | |
| type: string | |
| label: Verfügbarkeitszone | |
| description: Zu verwendende Region-AZ | |
| default: "uk-1a" | |
| az1_net_name: | |
| type: string | |
| label: Netzwerkname | |
| description: Netzwerkname | |
| default: "demo_net_az1" | |
| az1_subnet_name: | |
| type: string | |
| label: Subnetzname | |
| description: Subnetzname | |
| default: "demo_subnet_az1" | |
| az1_subnet_CIDR: | |
| type: string | |
| label: Subnetz-CIDR | |
| description: Subnetz-CIDR | |
| default: "192.168.100.0/24" | |
| az1_subnet_DHCP_Start_Address: | |
| type: string | |
| label: Startadresse des Subnetz-DHCP-Pools | |
| description: Startadresse des Subnetz-DHCP-Pools | |
| default: "192.168.100.100" | |
| az1_subnet_DHCP_End_Address: | |
| type: string | |
| label: Endadresse des Subnetz-DHCP-Pools | |
| description: Endadresse des Subnetz-DHCP-Pools | |
| default: "192.168.100.150" | |
| az1_subnet_DNS: | |
| type: string | |
| label: Subnetz-DNS | |
| description: Subnetz-DNS | |
| default: | |
| – "62.60.39.9" | |
| – "62.60.39.10" | |
| az1_subnet_Routes: | |
| type: string | |
| label: Subnetz-Host-Routen | |
| description: Subnetz-Host-Routen | |
| default: | |
| – "nexthop": "192.168.100.253" | |
| "destination": "10.10.10.0/24" | |
| az1_subnet_Gateway: | |
| type: string | |
| label: Subnetz-Gateway-Adresse | |
| description: Subnetz-Gateway-Adresse | |
| default: "192.168.100.254" | |
| az1_EndPoint_ip: | |
| type: string | |
| label: Subnetz-Endpunkt-Adresse | |
| description: Subnetz-Endpunkt-Adresse | |
| default: "192.168.100.253" | |
| az2: | |
| type: string | |
| label: Verfügbarkeitszone | |
| description: Zu verwendende Region-AZ | |
| default: "uk-1b" | |
| az2_net_name: | |
| type: string | |
| label: Netzwerkname | |
| description: Netzwerkname | |
| default: "demo_net_az2" | |
| az2_subnet_name: | |
| type: string | |
| label: Subnetzname | |
| description: Subnetzname | |
| default: "demo_subnet_az2" | |
| az2_subnet_CIDR: | |
| type: string | |
| label: Subnetz-CIDR | |
| description: Subnetz-CIDR | |
| default: "10.10.10.0/24" | |
| az2_subnet_DHCP_Start_Address: | |
| type: string | |
| label: Startadresse des Subnetz-DHCP-Pools | |
| description: Startadresse des Subnetz-DHCP-Pools | |
| default: "10.10.10.100" | |
| az2_subnet_DHCP_End_Address: | |
| type: string | |
| label: Endadresse des Subnetz-DHCP-Pools | |
| description: Endadresse des Subnetz-DHCP-Pools | |
| default: "10.10.10.150" | |
| az2_subnet_DNS: | |
| type: string | |
| label: Subnetz-DNS | |
| description: Subnetz-DNS | |
| default: | |
| – "62.60.42.9" | |
| – "62.60.42.10" | |
| az2_subnet_Routes: | |
| type: string | |
| label: Subnetz-Host-Routen | |
| description: Subnetz-Host-Routen | |
| default: | |
| – "nexthop": "10.10.10.253" | |
| "destination": "192.168.100.0/24" | |
| az2_subnet_Gateway: | |
| type: string | |
| label: Subnetz-Gateway-Adresse | |
| description: Subnetz-Gateway-Adresse | |
| default: "10.10.10.254" | |
| az2_EndPoint_ip: | |
| type: string | |
| label: Subnetz-Endpunkt-Adresse | |
| description: Subnetz-Endpunkt-Adresse | |
| default: "10.10.10.253" | |
| # K5-Infrastrukturressourcen, die erstellt werden sollen | |
| resources: | |
| # Erstellen Sie ein privates Netzwerk in Verfügbarkeitszone 1 | |
| private_net_az1: | |
| type: OS::Neutron::Net | |
| properties: | |
| availability_zone: { get_param: az1 } | |
| name: { get_param: az1_net_name } | |
| # Erstellen Sie ein neues Subnetz im privaten Netzwerk | |
| 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 } | |
| # Erstellen Sie ein privates Netzwerk in Verfügbarkeitszone 1 | |
| private_net_az2: | |
| type: OS::Neutron::Net | |
| properties: | |
| availability_zone: { get_param: az2 } | |
| name: { get_param: az2_net_name } | |
| # Erstellen Sie ein neues Subnetz im privaten Netzwerk | |
| 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 } | |
| # Erstellen Sie eine Sicherheitsgruppe | |
| server_security_group1: | |
| type: OS::Neutron::SecurityGroup | |
| properties: | |
| description: Fügen Sie Sicherheitsgruppenregeln für den Server hinzu | |
| 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 | |
| ############################### AZ-Interconnect ########################################################### | |
| 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 } | |
| Kontakt GitHub API Training Shop Blog Über uns | |
| © 2016 GitHub, Inc. Bedingungen Privatsphäre |
Rohansicht
K5NetworkConnectorDemo.yml
gehostet mit ❤ von GitHub
Nun müssen Sie nur noch eine Instanz in jedem Subnetz starten, und Sie werden feststellen, dass Sie Layer-3-Konnektivität zwischen den Instanzen haben …

Viel Spaß beim Stacking!
Originally published on allthingscloud.eu (2016-10-21).