Übersicht
Es gibt zwei Arten von Netzwerkmodellen im Flat-Modus: Netzwerke im statischen Modus und Netzwerke im dynamischen Modus (mit Border Gateway Protocol). Der statische Flat-Modus kann verwendet werden, wenn sich Knoten in einer einzelnen Layer-2-Domain befinden. Für Knoten, die sich über mehrere Layer-2-Domains erstrecken, verwenden Sie den Flat-IP-Modus mit BGP.
In einem Netzwerkmodell im Flat-Modus haben Pods clusterübergreifend eindeutige IP-Adressen. Achten Sie darauf, dass die zugewiesenen Pod-CIDRs eindeutig sind und sich nicht mit anderen Subnetzen überschneiden. IP-Adressen dürfen sich beispielsweise nicht mit IP-Adressen überschneiden, die für die Knoten oder die anderen Pod-CIDRs in anderen Clustern verwendet werden. Auf diese IP-Adressen kann extern zugegriffen werden. Daher können Pods auf jedem Knoten mit allen Pods auf allen anderen Knoten kommunizieren. Für die Kommunikation vom Pod zu einer externen IP-Adresse ist keine Netzwerkadressübersetzung (Network Address Translation, NAT) erforderlich. Weitere Informationen zum Netzwerkmodell im Flat -Modus und zum Vergleich mit dem Standardnetzwerkmodell im Inselmodus finden Sie unter Netzwerkmodelle im Flat-Modus und im Inselmodus.
Verwenden Sie ein Netzwerkmodell im Flat-Modus, wenn Sie einen großen IP-Adressbereich haben und einem Cluster eine eindeutige Pod-CIDR zuweisen können. Sie können die Pod-CIDRs dynamisch mit ClusterCIDRConfigs konfigurieren. Sie können ClusterCIDRConfigs nach der Clustererstellung hinzufügen oder löschen. Weitere Informationen zu ClusterCIDRConfig und Beispiele für die Verwendung finden Sie in Weitere Informationen zur benutzerdefinierten Ressource „ClusterCIDRConfig“.
Weitere Informationen zum Flat-Modus mit BGP finden Sie unter Netzwerkmodell im Flat-Modus mit BGP-Unterstützung implementieren.
Erreichbarkeit von Pod-IP-Adressen
Im statischen Flat-Netzwerkmodus für IPv4 basiert die Erreichbarkeit von Pod-IP-Adressen auf ARP-Paketen (Address Resolution Protocol). Daher sind Pod-IP-Adressen nur erreichbar, wenn sich die Pods in derselben Layer-2-Domain befinden. Die Knoten müssen zur selben Layer-2-Domain gehören. Die IP-Adressen, die Sie für Ihre Pods angeben (mit ClusterCIDRConfigs), müssen sich im selben Subnetz wie die Clusterknoten befinden. Die konfigurierten Pod-CIDRs müssen aus dem Subnetz der Knoten stammen. Wenn beispielsweise das Subnetz 222.1.0.0/16 von den Knoten in einem Cluster verwendet wird, wählen Sie ein kleineres Subnetz innerhalb des Subnetzes für die Pods aus, z. B. 222.1.2.0/24. Achten Sie darauf, dass keine andere Ressource in Ihrem Cluster eine IP-Adresse aus dem für Ihre Pods zugewiesenen Bereich verwendet.
Im folgenden Abschnitt wird die Konfiguration für Flat-Modus-Netzwerke für IPv4 beschrieben.
Statisches Netzwerk im Flat-Modus implementieren
Standardmäßig wird ein Google Distributed Cloud-Cluster im Inselmodus erstellt. In diesem Abschnitt wird beschrieben, wie Sie ein Netzwerk im Flat-Modus für Ihren Cluster einrichten.
Nehmen Sie die folgenden Änderungen an der Clusterkonfigurationsdatei vor, um einen Cluster mit einem Netzwerkmodell im Flat-Modus bereitzustellen:
Das Netzwerk im Flat-Modus kann für einen Cluster nur während der Clustererstellung aktiviert werden. So erstellen Sie einen neuen Cluster mit Flat-Modus-Netzwerk:
Bearbeiten Sie die Clusterkonfigurationsdatei, um
clusterNetwork.flatIPv4hinzuzufügen und auftruezu setzen.Wenn Sie das Netzwerk im Flat-Modus aktivieren, wird die in der Clusterkonfigurationsdatei angegebene Pod-CIDR (
clusterNetwork.pods.cidrBlocks) ignoriert.Fügen Sie der Clusterkonfigurationsdatei ein ClusterCIDRConfig-Manifest hinzu.
Das ClusterCIDRConfig-Manifest muss die folgenden Informationen enthalten:
metadata.namespace: der Namespace Ihres Clusters.spec.ipv4.cidr: der Bereich der IP-Adressen im CIDR-Blockformat, der für Pods in Ihrem Cluster verwendet werden soll. Dieser Bereich muss aus demselben Subnetz wie die Clusterknoten stammen.perNodeMaskSize: Bei den Preflight-Prüfungen für die Clustererstellung wird geprüft, ob der WertperNodeMaskSizeausreicht, um die inmaxPodsPerNodeangegebene Anzahl von Pods bereitzustellen.nodeSelector: Wenn keine Knotenlabels mit dem WertnodeSelectorübereinstimmen, bleibt die Knotenabstimmung ausstehend und die Clustererstellung wird nicht abgeschlossen.
Der folgende Auszug aus einer Clusterkonfigurationsdatei zeigt, wie ein Netzwerk im Flat-Modus ohne BGP-Unterstützung implementiert wird. Die in diesem Auszug enthaltenen CIDRs sind nur Beispiele und müssen durch Ihre eigenen CIDRs ersetzt werden. Achten Sie beim Ersetzen der CIDRs darauf, dass sie die Kriterien für die Erreichbarkeit von Pods erfüllen, die unter Erreichbarkeit von Pod-IP-Adressenangegeben sind.
---
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: flat-mode
namespace: cluster-flat-mode
spec:
... (other cluster config omitted)
...
# Cluster networking configuration
clusterNetwork:
flatIPv4: true
services:
cidrBlocks:
- 10.96.0.0/12
... (other cluster config omitted)
...
---
apiVersion: baremetal.cluster.gke.io/v1alpha1
kind: ClusterCIDRConfig
metadata:
name: cluster-wide-1
namespace: cluster-flat-mode
spec:
ipv4:
cidr: "222.1.0.0/16"
perNodeMaskSize: 24
Beschränkungen
Das statische Netzwerk im Flat-Modus für Google Distributed Cloud hat folgende Einschränkungen:
Pods, die Netzwerke im Flat-Modus verwenden, sind innerhalb der einzelnen Layer-2-Domain erreichbar. Jeder andere Computer, der sich nicht im Cluster, aber in derselben Layer-2-Domain befindet, kann die Pods ebenfalls erreichen. Diese Einschränkung gilt auch für IPv6, wenn Dual-Stack-Cluster erstellt werden und IPv6 sich im Flat-Modus ohne BGP befindet. Weitere Informationen finden Sie unter Erreichbarkeit von Pod-IP-Adressen.
Der Google Distributed Cloud IPAM-Controller verfolgt die Verfügbarkeit von IP-Adressen innerhalb der konfigurierten Pod-CIDRs. Er verfolgt nicht die IP-Adressen, die bereits von anderen Geräten verwendet werden. Daher dürfen andere IP-Adressen in der Layer-2-Domain die Pod-CIDRs nicht beeinträchtigen. Weitere Informationen finden Sie unter Erreichbarkeit von Pod-IP-Adressen.