IP-Pool
Der IP-Pool ist eine integrierte Lösung zur Verwaltung von IP-Adressen (IPAM), die ausschließlich für SUSE Virtualization Lastenausgleicher (LBs) verfügbar ist.
Funktionen
-
Mehrere IP-Bereiche: Jeder IP-Pool kann mehrere IP-Bereiche oder CIDRs enthalten.
-
Zuweisungshistorie: Der IP-Pool verfolgt die Zuweisungshistorie jeder IP-Adresse und priorisiert die Zuweisung zuvor zugewiesener Adressen nach dem Namen des Lastenausgleichers.
status: allocatedHistory: 192.168.178.8: default/rke2-default-lb-pool-2fab9ac0 -
Einsatzbereich: IP-Pools können auf ein bestimmtes Netzwerk, Projekt, Namespace oder Gast-Cluster beschränkt werden.
Einen IP-Pool erstellen
-
Gehen Sie im SUSE Virtualization UI zu Netzwerke → IP-Pools.
-
Wählen Sie Erstellen.
-
Geben Sie einen Namen für den IP-Pool ein.
-
Geben Sie im Bereich Tab einen oder mehrere IP-Bereiche an.
-
Geben Sie im Auswahl Tab die Prioritätsstufe und den Geltungsbereich (Namespace) des IP-Pools an.
Einen IP-Pool über die Rancher UI erstellen
Wenn Sie den SUSE Virtualization Cluster in Rancher importiert haben, können Sie einen IP-Pool über die Rancher UI erstellen (Virtualisierungsmanagement → IP-Pool: Erstellen*). Der Geltungsbereich Abschnitt im Auswahl Tab erfordert, dass Sie das Projekt und den Gast-Kubernetes-Cluster zusätzlich zum Namespace angeben. Für weitere Informationen siehe Multi-Tenancy-Beispiel und Projekte und Kubernetes-Namensräume mit Rancher.
Ein IP-Pool wird als globale Ressource bezeichnet, wenn der Abschnitt Geltungsbereich nur einen Eintrag mit den Feldern Projekt, Namespace und Gast-Kubernetes-Cluster hat, die auf Alle gesetzt sind.
Auswahlrichtlinie
Jeder IP-Pool hat einen spezifischen Bereich, und Sie können die entsprechenden Anforderungen im LB annotations angeben. IP-Pools, die die angegebenen Anforderungen erfüllen, weisen automatisch IP-Adressen an LBs zu.
-
LBs nutzen die folgenden Annotationen, um Anforderungen auszudrücken (alle Annotationen sind optional):
-
loadbalancer.harvesterhci.io/networkgibt das VM-Netzwerk an, das die Knoten des Gastclusters verwenden. -
loadbalancer.harvesterhci.io/projectundloadbalancer.harvesterhci.io/namespaceidentifizieren das Projekt und den Namespace der VMs, die den Gast-Cluster bilden. -
loadbalancer.harvesterhci.io/clusterbezeichnet den Namen des Gast-Clusters.
-
-
Der IP-Pool hat einen Selektor, einschließlich Netzwerk und Geltungsbereich, um die Anforderungen des LBs zu erfüllen.
-
Netzwerk ist eine harte Bedingung. Der optionale IP-Pool muss mit dem Wert der LB-Annotation
loadbalancer.harvesterhci.io/networkübereinstimmen. -
Jeder IP-Pool, außer dem globalen IP-Pool, hat einen einzigartigen Bereich, der sich von anderen unterscheidet, wenn seine Priorität
0ist. Das Projekt, der Namespace oder der Clustername von LBs sollte im Geltungsbereich des IP-Pools liegen, wenn sie eine IP aus diesem Pool erhalten möchten.
-
-
spec.selector.prioritygibt die Priorität des IP-Pools an. Je größer die Zahl, desto höher die Priorität. Wenn die Priorität nicht0ist, sollte der Wert unterschiedlich sein. Die Priorität hilft Ihnen, den alten IP-Pool in den neuen zu migrieren. -
Wenn der IP-Pool einen Bereich hat, der mit allen Projekten, Namensräumen und Gastclustern übereinstimmt, wird er als globaler IP-Pool bezeichnet, und es ist nur ein globaler IP-Pool erlaubt. Wenn es keinen IP-Pool gibt, der den Anforderungen des LBs entspricht, wird das IPAM eine IP-Adresse aus dem globalen IP-Pool zuweisen, falls dieser existiert.
Beispiele
-
Beispiel 1: Sie möchten einen IP-Pool im Bereich
192.168.100.0/24für den Namespacedefaulteinrichten. In diesem Szenario erhalten alle Lastenausgleicher im Namespacedefaulteine IP-Adresse aus diesem zugewiesenen IP-Pool:apiVersion: networking.harvesterhci.io/v1beta1 kind: IPPool metadata: name: default-ip-pool spec: ranges: - subnet: 192.168.100.0/24 selector: scope: namespace: default -
Beispiel 2: Sie haben einen Gast-Cluster
rke2im Netzwerkdefault/vlan1bereitgestellt, und seinproject/namespaceName istproduct/default. Wenn Sie einen exklusiven IP-Pool-Bereich192.168.10.10-192.168.10.20dafür konfigurieren möchten. Lesen Sie die folgendeYAMLKonfiguration:apiVersion: networking.harvesterhci.io/v1beta1 kind: IPPool metadata: name: rke2-ip-pool spec: ranges: - subnet: 192.168.10.0/24 rangeStart: 192.168.10.10 rangeEnd: 192.168.10.20 selector: network: default/vlan1 scope: - project: product namespace: default guestCluster: rke2 -
Beispiel 3: Wenn Sie den IP-Pool
default-ip-poolfür den Namespacedefaultangegeben haben, möchten Sie den IP-Pooldefault-ip-poolin einen anderen IP-Pooldefault-ip-pool-2mit dem Bereich192.168.200.0/24migrieren. Es ist nicht erlaubt, mehr als einen IP-Pool für denselben Geltungsbereich anzugeben, aber Sie können dem IP-Pooldefault-ip-pool-2eine höhere Priorität alsdefault-ip-poolgeben. Lesen Sie die folgendeYAMLKonfiguration:apiVersion: networking.harvesterhci.io/v1beta1 kind: IPPool metadata: name: default-ip-pool-2 spec: ranges: - subnet: 192.168.200.0/24 selector: priority: 1 # The priority is higher than default-ip-pool scope: namespace: default -
Beispiel 4: Sie möchten einen globalen IP-Pool mit einem CIDR-Bereich von
192.168.20.0/24konfigurieren:apiVersion: networking.harvesterhci.io/v1beta1 kind: IPPool metadata: name: global-ip-pool labels: loadbalancer.harvesterhci.io/global-ip-pool: 'true' # Added by the controller automatically spec: ranges: - subnet: 192.168.20.0/24 selector: scope: - project: "*" namespace: "*" guestCluster: "*"
Zuteilungsrichtlinie
-
Der IP-Pool priorisiert die Zuteilung zuvor zugewiesener IP-Adressen basierend auf ihrer Zuteilungshistorie.
-
IP-Adressen werden in aufsteigender Reihenfolge zugewiesen.
Best Practices
IP-Pool für VM-Typ Lastenausgleicher
-
Erstellen Sie einen IP-Pool unter Verwendung der SUSE Virtualization UI, der die Felder Projekt und Gast-Kubernetes-Cluster des Geltungsbereichs leer lässt.
-
Wenn Sie die Rancher UI verwenden müssen, setzen Sie die Felder Projekt und Gast-Kubernetes-Cluster auf entweder Alle oder Keine.
IP-Pool für Gast-Cluster-Typ Lastenausgleicher
-
Erstellen Sie einen IP-Pool unter Verwendung der Rancher UI, der es Ihnen ermöglicht, das Zielprojekt und den Gast-Kubernetes-Cluster für eine bessere Ressourcenverwaltung und Isolation anzugeben.
-
Seien Sie vorsichtig beim Erstellen globaler IP-Pools. Ein einzelner Gast-Cluster kann den gesamten Pool erschöpfen, sodass andere Cluster keine Dienste bereitstellen können. Darüber hinaus können Sie einen Pool nicht löschen, wenn eine der Adressen noch in Verwendung ist.