Mit Dual-Stack-Subnetzen können Ihre Cloud Run-Ressourcen IPv4- und IPv6-Traffic mit ausgehendem Direct VPC-Traffic an ein VPC-Netzwerk senden. Sie können ein vorhandenes IPv4-Subnetz (Single-Stack) in ein Dual-Stack-Subnetz ändern.
Subnetztypen
VPC-Netzwerke unterstützen die folgenden Compute Engine-Subnetztypen:
Nur-IPv4-Subnetze (Single-Stack) mit nur IPv4-Subnetzbereichen
IPv4- und IPv6-Subnetze (Dual-Stack) mit IPv4- und IPv6-Subnetzbereichen
Einschränkungen bei Dual-Stack
Bevor Sie den Stacktyp einer vorhandenen Cloud Run-Ressource ändern, beachten Sie die folgenden Einschränkungen:
Die Dual-Stack-Unterstützung ist nur mit Subnetzen in einem VPC-Netzwerk im benutzerdefinierten Modus verfügbar. Damit der interne Zugriffstyp für Dual-Stack-Subnetze verfügbar ist, muss der interne IPv6-Bereich des VPC-Netzwerk aktiviert sein. Richten Sie das VPC-Netzwerk ein oder konvertieren Sie es in den benutzerdefinierten Modus.
Im Vergleich zu reinen IPv4-Subnetzen kann es bei Dual-Stack-Subnetzen zu längeren Kaltstartlatenzen kommen, was die Geschwindigkeit einschränkt, mit der Ihre Anwendung skaliert werden kann.
NAT64 wird nicht unterstützt.
Hinweis
Der Cloud Run-Dienst-Agent
muss die Rolle „Compute Public IP Admin (roles/compute.publicIpAdmin)“ haben,
um das Subnetz mit externem IPv6 zu verwenden.
Dual-Stack-Subnetz zu einer Ressource hinzufügen
Dual-Stack-Subnetze haben sowohl IPv4- als auch IPv6-Adressbereiche.
So fügen Sie einer Cloud Run-Ressource ein Dual-Stack-Subnetz hinzu:
Console
In der Google Cloud Console:
Aktivieren Sie die Compute Engine API:
Rufen Sie die Seite VPC-Netzwerke auf:
Klicken Sie auf VPC-Netzwerk erstellen , wenn Sie ein neues Netzwerk im benutzerdefinierten Modus erstellen. Wenn Sie ein vorhandenes VPC-Netzwerk verwenden, klicken Sie auf den Namen des VPC-Netzwerks, um die zugehörige Seite VPC-Netzwerkdetails aufzurufen.
Wenn Sie ein neues Netzwerk erstellen oder ein vorhandenes konvertieren, geben Sie den Namen ein und prüfen Sie, ob der Subnetzerstellungsmodus auf Benutzerdefiniert gesetzt ist. Wählen Sie dann ULA-internen IPv6-Bereich für dieses VPC-Netzwerk konfigurieren aus.
Klicken Sie auf dem Tab Subnetze auf Subnetz hinzufügen. Führen Sie im angezeigten Bereich folgende Schritte aus:
- Geben Sie einen Namen an.
- Wählen Sie eine Region aus.
- Wählen Sie für IP-Stack-Typ IPv4 und IPv6 (Dual-Stack) aus.
- Geben Sie einen IPv4-Bereich ein. Dies ist der primäre IPv4-Bereich für das Subnetz.
Wählen Sie den IPv6-Zugriffstyp aus.
Wenn die Option Intern nicht verfügbar ist und Sie sie benötigen, prüfen Sie, ob im Netzwerk ein interner IPv6-Bereich zugewiesen ist.
Klicken Sie auf Hinzufügen.
Stellen Sie einen Cloud Run-Dienst bereit, führen Sie einen Job aus, oder stellen Sie einen Worker-Pool bereit im erstellten Dual-Stack Subnetz. Wenn Sie die erforderlichen Ressourcendetails eingeben, wählen Sie den neuen IPv6-Adressbereich so aus:
- Klicken Sie auf Container, Volumes, Netzwerk, Sicherheit und wählen Sie den Tab Netzwerk aus.
- Klicken Sie auf Mit einer VPC für ausgehenden Traffic verbinden und dann auf Traffic direkt an eine VPC senden.
- Wählen Sie das Netzwerk aus, das Sie im vorherigen Schritt erstellt haben.
- Klicken Sie auf das Feld Subnetz , um den neu erstellten IPv6-Adressbereich auszuwählen.
Die Ressource wird automatisch mit dem Stacktyp des Subnetzes bereitgestellt.
gcloud
Führen Sie den Befehl
gcloud compute networks createaus, um ein Netzwerk im benutzerdefinierten Modus zu erstellen, das Dual-Stack-Subnetze unterstützt.Verwenden Sie das Flag
--enable-ula-internal-ipv6, um interne IPv6-Bereiche in allen Subnetzen dieses Netzwerks zu konfigurieren. Mit dieser Option wird ein/48ULA-Präfix aus dem Bereichfd20::/20zugewiesen, der für Google Cloud interne IPv6-Subnetzbereiche verwendet wird.gcloud compute networks create NETWORK \ --subnet-mode=custom \ --enable-ula-internal-ipv6
Ersetzen Sie
NETWORKdurch den Namen des VPC-Netzwerks mit dem neuen Subnetz.Führen Sie den folgenden Befehl aus, um ein Netzwerk im benutzerdefinierten Modus zu konvertieren oder zu aktualisieren, damit es Dual-Stack-Subnetze unterstützt:
gcloud compute networks update NETWORK \ --subnet-mode=custom \ --enable-ula-internal-ipv6
Ersetzen Sie
NETWORKdurch den Namen des VPC-Netzwerks mit dem neuen Subnetz.Führen Sie den
subnets createBefehl mit den Dual-Stack-Einstellungen aus, um ein Dual-Stack-Subnetz mit einem IPv6-Bereich zu erstellen:gcloud compute networks subnets create SUBNET \ --network=NETWORK \ --range=PRIMARY_IPv4_RANGE \ --stack-type=IPV4_IPV6 \ --ipv6-access-type=IPV6_ACCESS_TYPE \ --region=REGION
Ersetzen Sie Folgendes:
SUBNET: ein Name für das neue Subnetz.NETWORK: der Name des VPC-Netzwerks mit dem neuen Subnetz.PRIMARY_IPv4_RANGE: der primäre IPv4-Bereich für das neue Subnetz in CIDR-Notation. Weitere Informationen finden Sie unter IPv4-Subnetz bereiche.IPV6_ACCESS_TYPE: der IPv6-Zugriffstyp für das neue Subnetz, entwederinternaloderexternal.REGION: die Google Cloud Region, in der das neue Subnetz erstellt wird.
Stellen Sie einen Cloud Run-Dienst bereit, führen Sie einen Job aus, oder stellen Sie einen Worker-Pool bereit im erstellten Dual-Stack Subnetz. Die Ressource wird automatisch mit dem Stacktyp des Subnetzes bereitgestellt.
YAML
Wenn Sie einen neuen Dienst erstellen, überspringen Sie diesen Schritt. Wenn Sie einen vorhandenen Dienst aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:
gcloud run services describe SERVICE --format export > service.yaml
Aktualisieren Sie die folgenden Attribute:
apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE_NAME labels: cloud.googleapis.com/location: REGION spec: template: metadata: annotations: run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]' run.googleapis.com/vpc-access-egress: EGRESS_SETTING spec: containers: - image: IMAGE
Ersetzen Sie:
- SERVICE_NAME durch den Namen Ihres Cloud Run-Dienstes. Dienstnamen dürfen maximal 49 Zeichen lang sein und pro Region und Projekt nur einmal vorkommen.
- REGION durch die Region für Ihren Cloud Run-Dienst; diese muss der Region Ihres Subnetzes entsprechen.
- NETWORK durch den Namen Ihres VPC-Netzwerks.
- SUBNET durch den Namen Ihres Subnetzes. Sie können mehrere Dienste, Jobs oder Worker-Pools im selben Subnetz bereitstellen oder ausführen.
- Optional: Ersetzen Sie NETWORK_TAG_NAMES durch die Namen der
Netzwerk-Tags
, die Sie einem Dienst zuordnen möchten. Bei Diensten werden Netzwerk-Tags auf Versionsebene angegeben. Jede Dienstversion kann unterschiedliche Netzwerk-Tags haben, z. B.
network-tag-2. - EGRESS_SETTING mit einem
Wert für die Einstellung für ausgehenden Traffic:
all-traffic: Sendet den gesamten ausgehenden Traffic über das VPC-Netzwerk.private-ranges-only: Sendet nur Traffic an interne Adressen über das VPC-Netzwerk.
- IMAGE durch die URL Ihres Dienst-Container-Images.
Sie können auch weitere Konfigurationen angeben, z. B. Umgebungsvariablen oder Speicherlimits.
Erstellen oder aktualisieren Sie den Dienst mit dem folgenden Befehl:
gcloud run services replace service.yaml
Terraform
Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.
Fügen Sie der Datei
main.tfFolgendes hinzu:
Optional: Veröffentlichen Sie Ihren Dienst, wenn Sie den nicht authentifizierten Zugriff auf den Dienst zulassen möchten.
Subnetz von Single-Stack in Dual-Stack ändern
Informationen zum Hinzufügen eines IPv6-Subnetzbereichs zu einem vorhandenen reinen IPv4-Subnetz in einem VPC-Netzwerk im benutzerdefinierten Modus finden Sie unter Stacktyp eines Subnetzes in Dual-Stack ändern. Stellen Sie dann den Cloud Run-Dienst bereit, führen Sie den Job aus, oder stellen Sie den Worker-Pool bereit im Dual-Stack-Subnetz bereit.
Subnetz von Dual-Stack in Single-Stack ändern
Informationen zum Ändern des Dual-Stack-Subnetzes einer Ressource in ein Single-Stack-Subnetz finden Sie unter Dual-Stack-Subnetz in reines IPv4-Subnetz ändern. Stellen Sie dann den Cloud Run-Dienst bereit, führen Sie den Job aus, oder stellen Sie den Worker-Pool bereit im Dual-Stack-Subnetz bereit.
Netzwerk und Subnetz prüfen
Führen Sie den folgenden Befehl aus, um zu prüfen, ob sich Ihre Ressource im VPC-Netzwerk befindet:
gcloud run services describe SERVICE_NAME --region=REGION
Ersetzen Sie REGION durch die Google Cloud Region, in der das
neue Subnetz erstellt wurde.
Die folgende Beispielausgabe zeigt Ihr Netzwerk und Subnetz:
VPC Access:
Network: example-network
Subnet: example-subnet
Egress: private-ranges-only