Fujitsu K5 Inter-AZ-Netzwerk-Heat-Stack

2016-10-21

Fujitsu K5 Inter-AZ-Netzwerk-Heat-Stack

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.

nc-overview

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…

Eingebetteter Inhalt

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

Versteckte Zeichen anzeigen

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 …

networkconnector

Viel Spaß beim Stacking!

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

← All posts