Pod-IP-Adressbereiche hinzufügen


Auf dieser Seite wird beschrieben, wie Sie neue oder vorhandene sekundäre Pod-IP-Adressbereiche zu GKE-Clustern mit nicht zusammenhängenden Multi-Pod-CIDR hinzufügen.

Warum weitere Pod-IPv4-Bereiche hinzufügen

Als Plattformadministrator können Sie zusätzliche sekundäre IPv4-Bereiche hinzufügen. Erstellen Sie dazu zusätzliche sekundäre Bereiche. Dies kann in folgenden Szenarien nützlich sein:

  • Wenn der Cluster keine Pod-IP-Adressen mehr hat.
  • Wenn Sie IP-Adressen effizient und vorausschauend zuweisen wollen.
  • Wenn Sie fragmentierte IP-Adressräume für Ihre Cluster verwenden können.
  • Wenn Sie IP-Adressen entsprechend den sich ändernden Geschäftsanforderungen neu zuweisen können.

Hinweis

Führen Sie die folgenden Aufgaben aus, bevor Sie beginnen:

  • Aktivieren Sie die Google Kubernetes Engine API.
  • Google Kubernetes Engine API aktivieren
  • Wenn Sie die Google Cloud CLI für diese Aufgabe verwenden möchten, müssen Sie die gcloud CLI installieren und dann initialisieren. Wenn Sie die gcloud CLI bereits installiert haben, rufen Sie die neueste Version mit gcloud components update ab.

Weitere Pod-IPv4-Bereiche mit GKE Autopilot hinzufügen

Für GKE Autopilot-Cluster ab Version 1.26 können Sie weitere Pod-IPv4-Bereiche hinzufügen. Erstellen Sie dazu zusätzliche sekundäre Bereiche und weisen Sie sie dem Cluster zu.

Zusätzlichen sekundären Bereich für ein Subnetz erstellen

Console

  1. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.

    Zur Seite VPC-Netzwerke

  2. Wählen Sie in der Liste VPC-Netzwerke das Netzwerk aus, das Sie erweitern möchten.

  3. Wählen Sie in der Liste Subnetze das gewünschte Subnetz aus.

  4. Klicken Sie auf Bearbeiten.

  5. Klicken Sie auf IP-Bereich hinzufügen.

  6. Geben Sie unter Name des Subnetzbereichs den Namen des zusätzlichen Pod-Bereichs ein. Beispiel: pod-range-2.

  7. Geben Sie unter Sekundärer IP-Bereich den IP-Bereich ein. Beispiel: 10.2.204.0/22.

  8. Klicken Sie auf Speichern.

gcloud

gcloud compute networks subnets update SUBNET_NAME \
    --add-secondary-ranges ADDITIONAL_RANGE=RANGE \
    --location=COMPUTE_LOCATION

Ersetzen Sie Folgendes:

  • SUBNET_NAME: Der Name des Subnetzes, dem Sie einen Bereich hinzufügen möchten (muss das Subnetz sein, das dem Cluster zugewiesen ist).
  • ADDITIONAL_RANGE: Der Name des Pod-Bereichs, der dem Cluster hinzugefügt werden soll. Beispiel: pod-range-2. Wenn Sie mehrere Bereiche angeben möchten, trennen Sie die Bereichsnamen durch Kommas. Beispiel: pod-range-1, pod-range-2.
  • RANGE: Der IP-Adressbereich, der dem Cluster hinzugefügt werden soll.
  • COMPUTE_LOCATION: der Compute Engine-Standort des Clusters.

Dem Cluster zusätzliche sekundäre Bereiche zuweisen

Erstellen Sie zusätzliche sekundäre Bereiche und weisen Sie sie dem Cluster zu. Sie können dafür die Google Cloud Console oder die Google Cloud CLI verwenden:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf.

    Zur Seite "Google Kubernetes Engine"

  2. Klicken Sie neben dem Cluster, den Sie bearbeiten möchten, auf Aktionen und dann auf Bearbeiten.

  3. Klicken Sie im Abschnitt Netzwerk neben Pod-IPv4-Bereiche des Clusters (zusätzliche) auf Bearbeiten.

  4. Wählen Sie im Dialogfeld Zusätzliche IPv4-Bereiche für Cluster-Pods bearbeiten die sekundären Pod-CIDR-Bereiche aus, die Sie dem Cluster hinzufügen möchten. Verwenden Sie denselben Namen des Pod-Bereichs, den Sie im Subnetz als zusätzliche sekundäre Bereiche für den Cluster erstellt haben.

  5. Klicken Sie auf Änderungen speichern.

gcloud

  1. Aktualisieren Sie den Cluster, um einen zusätzlichen IP-Adressbereich zu verwenden:

    gcloud container clusters update CLUSTER_NAME \
        --additional-pod-ipv4-ranges=ADDITIONAL_RANGE \
        --location=COMPUTE_LOCATION
    

    Ersetzen Sie Folgendes:

    • CLUSTER_NAME: Der Name des Clusters. Auf Ihrem Cluster muss Version 1.26.0 oder höher ausgeführt werden.
    • ADDITIONAL_RANGE: Der Name des Pod-Bereichs, der dem Cluster hinzugefügt werden soll. Verwenden Sie denselben Namen des Pod-Bereichs, den Sie im Subnetz als zusätzliche sekundäre Bereiche für den Cluster erstellt haben.
    • COMPUTE_LOCATION: der Compute Engine-Standort des Clusters.
  2. Prüfen Sie, ob dem Cluster die neue IP-Adresse zugewiesen ist:

    gcloud container clusters describe CLUSTER_NAME
    

    Die Ausgabe sieht in etwa so aus:

    ipAllocationPolicy:
    additionalPodRangesConfig:
      podRangeNames:
      - pod-range-1
      - pod-range-2
    clusterIpv4Cidr: 10.10.0.0/23
    clusterIpv4CidrBlock: 10.10.0.0/23
    clusterSecondaryRangeName: cluster-pods
    

Weitere Pod-IPv4-Bereiche mit GKE Standard hinzufügen

Für GKE Standard-Cluster können Sie mit einer der folgenden Methoden weitere Pod-IPv4-Bereiche hinzufügen:

  • Erstellen und weisen Sie dem Cluster zusätzliche sekundäre Bereiche zu: empfohlen für Nutzer, die die Pod-IP-Adressbereiche nicht auf Knotenpoolebene steuern müssen. Diese Methode ist in GKE-Version 1.26.0 oder höher verfügbar. Weitere Informationen finden Sie unter Weitere Pod-IPv4-Bereiche mit GKE Autopilot hinzufügen.
  • Erstellen Sie einen Knotenpool mit einem neuen sekundären Pod-IP-Adressbereich: empfohlen für Nutzer, die die Pod-IP-Adressbereiche Ihrer Knotenpools vollständig steuern müssen. Diese Methode ist in GKE-Version 1.20.4-gke.500 oder höher verfügbar.
  • Erstellen Sie einen Knotenpool mit einer vorhandenen sekundären Pod-IP-Adresse: Empfohlen für Nutzer, die die vorhandenen Pod-IP-Adressbereiche von Knotenpools vollständig steuern müssen. Diese Methode ist in GKE-Version 1.20.4-gke.500 oder höher verfügbar.

Knotenpool mit einem neuen sekundären IP-Bereich erstellen

Standardmäßig ordnet GKE dem Knotenpool einen Pod-Bereich zu. Dies kann der Standard-Pod-IP-Adressbereich des Clusters oder einer der zusätzlichen Pod-Bereiche (falls vorhanden) sein, die dem Cluster zugeordnet sind. Mit zusätzlichen sekundären Bereichen können Sie einen Pod-IPv4-Adressbereich während der Erstellung des Knotenpools angeben. Der Knotenpool verwendet diesen Bereich anstelle des standardmäßigen sekundären Pod-IP-Adressbereichs des Clusters.

In diesem Abschnitt erstellen Sie einen Knotenpool mit einem sekundären Pod-IP-Adressbereich.

Sie können dazu das Google Cloud CLI oder die GKE API verwenden.

gcloud

gcloud container node-pools create POOL_NAME \
    --cluster CLUSTER_NAME \
    --create-pod-ipv4-range name=RANGE_NAME,range=RANGE

Ersetzen Sie Folgendes:

  • POOL_NAME: der Name des neuen Knotenpools.
  • CLUSTER_NAME: der Name des Clusters.
  • RANGE_NAME: ein optionaler Name des neuen sekundären Pod-IP-Adressbereichs.
  • RANGE: ein optionaler Pod-IP-Adressbereich, der entweder als Netzmaske (/20) oder als CIDR-Bereich (10.12.4.0/20) angegeben wird. Wenn Sie eine Netzmaske angeben, weist GKE einen Bereich aus den verfügbaren Bereichen im Clusternetzwerk zu. Wenn Sie keinen Wert für range angeben, weist GKE automatisch eine Netzmaske vom Typ /14 zu, die Standardgröße für den sekundären IP-Bereich des Subnetzes für Pods des Subnetzes.

API

"nodePool": {
  "name": "POOL_NAME",
  ...
  "networkConfig": {
    "createPodRange": true,
    "podRange": "RANGE_NAME",
    "podIpv4CidrBlock": "RANGE"
  }
}

Ersetzen Sie Folgendes:

  • POOL_NAME: der Name des neuen Knotenpools.
  • RANGE_NAME: ein optionaler Name des neuen sekundären Pod-IP-Adressbereichs.
  • RANGE ist ein optionaler Pod-IP-Adressbereich, der entweder als Netzmaske (/20) oder als CIDR-Bereich (10.12.0.0/20) bereitgestellt wird. Wenn eine Netzmaske angegeben ist, wird der IP-Bereich automatisch aus dem freien Bereich im Netzwerk des Clusters zugewiesen. Wenn kein Wert angegeben ist, weist GKE automatisch eine /14-Netzmaske zu. Dies ist die Standardgröße für den sekundären IP-Bereich des Subnetzes für Pods.

Knotenpool mit einem vorhandenen sekundären Pod-IP-Bereich erstellen

In diesem Abschnitt erstellen Sie einen Knotenpool mit einem vorhandenen sekundären Pod-IP-Adressbereich.

Sie können die gcloud CLI oder die GKE API verwenden.

gcloud

gcloud container node-pools create POOL_NAME \
    --cluster CLUSTER_NAME \
    --pod-ipv4-range RANGE_NAME

Ersetzen Sie Folgendes:

  • POOL_NAME: der Name des neuen Knotenpools.
  • CLUSTER_NAME: der Name des Clusters.
  • RANGE_NAME: der Name eines vorhandenen sekundären Pod-IP-Adressbereichs im Subnetzwerk des Clusters.

API

"nodePool": {
  "name": "POOL_NAME",
  ...
  "networkConfig": {
    "podRange": "RANGE_NAME"
  }
}

Ersetzen Sie Folgendes:

  • POOL_NAME: der Name des neuen Knotenpools.
  • RANGE_NAME: der Name eines vorhandenen sekundären Pod-IP-Adressbereichs im Subnetzwerk des Clusters.

Pod-CIDR-Block für einen Knotenpool überprüfen

Mit dem folgenden Befehl können Sie ermitteln, welcher Pod-CIDR-Block für Pods in einem bestimmten Knotenpool verwendet wird:

gcloud container node-pools describe POOL_NAME \
    --cluster CLUSTER_NAME

Die Ausgabe sieht etwa so aus:

...
networkConfig:
  podIpv4CidrBlock: 192.168.0.0/18
  podRange: podrange
...

Wenn der Knotenpool nicht zusammenhängende Multi-Pod-CIDRs verwendet, zeigen podRange und podIpv4CidrBlock die konfigurierten Werte für diesen Knotenpool an.

Wenn der Knotenpool nicht zusammenhängende Multi-Pod-CIDRs verwendet, zeigen podRange und podIpv4CidrBlock die Standardwerte des Clusters clusterSecondaryRangeName und clusterIpv4CidrBlock von IPAllocationPolicy an.

Weitere Pod-IPv4-Bereiche für bestimmte Anwendungsfälle hinzufügen

  • Wenn Sie ip-masq-agent mit dem Parameter nonMasqueradeCIDRs verwenden, müssen Sie nonMasqueradeCIDRs so aktualisieren, dass alle zusätzlichen sekundären Bereiche enthalten sind.
  • Wenn Sie NetworkPolicy mit einem ipBlock verwenden, um Traffic anzugeben, müssen Sie den CIDR-Wert aktualisieren, um alle Pod-CIDR-Bereiche einzuschließen.
  • Für freigegebene VPC müssen Sie ein weiteres Dienstkonto festlegen.
  • Sie benötigen die Rolle „Netzwerkadministrator“, um dem Cluster einen sekundären Pod-IP-Adressbereich hinzuzufügen oder einen Knotenpool mit einem neuen sekundären Pod-IP-Adressbereich zu erstellen. Eine Nutzerrolle kann diese Ressourcen nur verwenden, wenn sie vom Netzwerkadministrator erstellt wurden.
  • Wenn Ihr Projekt mehr als einen Cluster hat, müssen Sie in jedem Cluster einen sekundären Pod-IP-Adressbereich erstellen und hinzufügen.

Funktionsweise eines nicht zusammenhängenden Multi-Pod-CIDR

Wenn Sie einen neuen Knotenpool erstellen, verwendet der Knotenpool standardmäßig den Standard-Pod-IP-Adressbereich des Clusters, der als Cluster-CIDR bezeichnet wird. Mit dieser Funktion können Sie beim Erstellen des Knotenpools einen Pod-IP-Adressbereich angeben, der dann anstelle des Standard-Pod-IP-Adressbereichs des Clusters verwendet wird.

Das folgende Diagramm zeigt einen nutzerverwalteten Cluster mit einem /24-CIDR-Block als sekundären Pod-IP-Adressbereich (256 IP-Adressen) und zwei Knoten, die /25-CIDR-Blöcke für Pod-IP-Adressen (jeweils 128 IP-Adressen) verwenden. Der sekundäre Pod-IP-Adressbereich ist ausgeschöpft und Sie können dem Cluster keinen weiteren Knoten hinzufügen. Anstatt den Cluster zu löschen und neu zu erstellen, können Sie den nicht zusammenhängenden Multi-Pod-CIDR-Bereich verwenden, um die Pod-IP-Adressen mit /20-CIDR-Blöcken zu erweitern. Der Cluster wird um einen dritten Knoten erweitert, der /25-CIDR-Blöcke für Pod-IP-Adressen verwendet, die aus dem /20-Block stammen.

Knotenpool zu einem Cluster mit einem aufgebrauchten sekundären Pod-IP-Adressbereich mithilfe eines nicht zusammenhängenden Multi-Pod-CIDR hinzufügen
Diagramm: Nicht zusammenhängende Multi-Pod-CIDR-Bereich verwenden

Geänderte Firewallregel

Wenn GKE einen Cluster erstellt, wird eine Firewallregel erstellt, um die Pod-zu-Pod-Kommunikation gke-[cluster-name]-[cluster-hash]-all zu aktivieren.

Wenn Sie einen Knotenpool erstellen und löschen, wobei der CIDR-Wert für mehrere Pods gleichzeitig aktiviert ist, aktualisiert GKE den Quellwert dieser Firewallregel auf alle CIDRs, die vom Cluster für Pod-IPs verwendet werden.

Fehlerbehebung

Sie können VPC-Flusslogs aktivieren, um festzustellen, ob Pakete an Knoten gesendet werden.

Nächste Schritte