Netzwerk und Zugriff auf eine TPU-Instanz konfigurieren

Auf dieser Seite wird beschrieben, wie Sie benutzerdefinierte Netzwerk- und Zugriffskonfigurationen für eine TPU-Instanz einrichten. Dies umfasst Folgendes:

  • Benutzerdefiniertes Netzwerk und Subnetzwerk angeben
  • Externe und interne IP-Adressen angeben
  • SSH-Zugriff auf TPUs aktivieren
  • Benutzerdefiniertes Dienstkonto an Ihre TPU anhängen
  • Benutzerdefinierte SSH-Methoden aktivieren
  • VPC Service Controls verwenden

Vorbereitung

Um die hier beschriebenen Vorgänge ausführen zu können, müssen Sie die Google Cloud CLI installieren, ein a Google Cloud Projekt erstellen und die Compute Engine API aktivieren. Eine Anleitung dazu finden Sie unter Projekt für TPUs einrichten. Google Cloud

Benutzerdefiniertes Netzwerk und Subnetzwerk angeben

Wenn Sie eine TPU-VM-Instanz oder eine Instanzvorlage erstellen, können Sie optional das Netzwerk und das Subnetzwerk für die Verwendung in der TPU angeben. Wenn Sie kein Netzwerk angeben, befindet sich die TPU im default-Netzwerk. Das Subnetz muss sich in derselben Region wie die Zone befinden, in der die TPU ausgeführt wird.

  1. Erstellen Sie ein Netzwerk und ein Subnetzwerk. Folgen Sie dazu der Anleitung unter VPC-Netzwerk.

  2. Erstellen Sie eine TPU-VM und geben Sie das benutzerdefinierte Netzwerk und Subnetzwerk an:

    Wenn Sie das Netzwerk und das Subnetzwerk angeben möchten, fügen Sie beim Ausführen des Befehlsgcloud compute instances create die im folgenden Beispiel gezeigten Netzwerk-Flags ein:

    gcloud compute instances create TPU_NAME \
        --machine-type=MACHINE_TYPE \
        --image-family=IMAGE_FAMILY \
        --image-project=IMAGE_PROJECT \
        --zone=ZONE \
        --maintenance-policy=TERMINATE \
        --network=NETWORK_NAME \
        --subnet=SUBNET_NAME \
        --stack-type=STACK_TYPE \
        --private-network-ip=INTERNAL_IPV4_ADDRESS \
        --address=EXTERNAL_IPV4_ADDRESS
    

    Ersetzen Sie die folgenden Platzhalter:

    • TPU_NAME: Ein Name für die TPU-VM.
    • MACHINE_TYPE: Der Maschinentyp für die TPU-VM (z. B. ct6e-standard-8t).
    • IMAGE_FAMILY: Die Betriebssystem-Image-Familie für die TPU-VM. Wenn Sie eine bestimmte Betriebssystemversion installieren möchten, verwenden Sie das Flag --image. Weitere Informationen zu Betriebssystem-Images finden Sie unter Betriebssystem Images.
    • IMAGE_PROJECT: Das Projekt, das das Betriebssystem Image enthält. Für TPU-Images ist dies ubuntu-os-accelerator-images.
    • ZONE: Die Zone für die TPU-VM (z. B. us-central1-b).
    • NETWORK_NAME: Optional: Name des Netzwerks. Wenn Sie ein Netzwerk angeben, müssen Sie ein Subnetz angeben, das zu demselben Netzwerk gehören muss. Wenn Sie kein Netzwerk angeben, leitet Compute Engine das Netzwerk aus dem angegebenen Subnetz ab.
    • SUBNET_NAME: Name des Subnetzes, das mit der Instanz verwendet werden soll.

      Mit dem Befehl gcloud compute networks subnets list rufen Sie eine Liste der Subnetze im Netzwerk auf.

    • STACK_TYPE: Optional: Der Netzwerkstacktyp für die Netzwerkschnittstelle. STACK_TYPE muss einer der folgenden Werte sein: IPV4_ONLY, IPV4_IPV6, oder IPV6_ONLY (Vorschau). Der Standardwert ist IPV4_ONLY.

    • INTERNAL_IPV4_ADDRESS: Optional: Die interne IPv4-Adresse, die die Compute-Instanz im Ziel Subnetz verwenden soll. Lassen Sie dieses Flag weg, wenn Sie keine bestimmte IP-Adresse benötigen.

      Verwenden Sie stattdessen das Flag --internal-ipv6-address, um eine interne IPv6-Adresse anzugeben.

    • EXTERNAL_IPV4_ADDRESS: Optional: Die statische externe IPv4-Adresse, die mit der Netzwerkschnittstelle verwendet werden soll. Ersetzen Sie EXTERNAL_IPV4_ADDRESS durch einen der folgenden Werte:

      Wenn die VM keine externe IP-Adresse haben soll, ersetzen Sie das Flag --address durch das Flag --no-address.

      Verwenden Sie stattdessen das Flag --external-ipv6-address, um eine externe IPv6-Adresse anzugeben.

Externe und interne IP-Adressen

Wenn Sie TPU-VM-Instanzen erstellen, haben diese immer interne IP-Adressen. Wenn Sie Ihre TPU-Instanzen mit der gcloud CLI erstellen, werden standardmäßig externe IP-Adressen generiert. Wenn Sie sie über die Compute Engine REST APIs (compute.googleapis.com) erstellen, wird standardmäßig keine externe IP-Adresse zugewiesen. Sie können das Standardverhalten in beiden Fällen ändern.

Es gibt mehrere Gründe, Ihre TPU-VMs auf die Verwendung interner IP-Adressen zu beschränken:

  • Erhöhte Sicherheit: Auf interne IP-Adressen kann nur durch Ressourcen innerhalb desselben VPC-Netzwerk zugegriffen werden. Dadurch kann die Sicherheit verbessert werden, da der externe Zugriff auf die TPU-VMs eingeschränkt wird. Das ist besonders wichtig, wenn Sie mit vertraulichen Daten arbeiten oder den Zugriff auf die TPU-VMs auf bestimmte Nutzer oder Systeme in Ihrem Netzwerk beschränken möchten.
  • Kosteneinsparungen: Durch die Verwendung interner IP-Adressen können Sie die Kosten für externe IP-Adressen vermeiden, die bei einer großen Anzahl von TPU-VMs erheblich sein können.
  • Bessere Netzwerkleistung: Interne IP-Adressen können zu einer besseren Netzwerkleistung führen, da der Traffic im Google-Netzwerk verbleibt und der Aufwand für das Routing über das öffentliche Internet vermieden wird. Das ist besonders wichtig für große Machine-Learning-Arbeitslasten, die Kommunikation mit hoher Bandbreite zwischen TPU-VMs erfordern.

TPU-VM-Instanz ohne externe IP-Adresse erstellen

Wenn Sie eine TPU-VM-Instanz ohne externe IP-Adresse erstellen möchten, verwenden Sie das Flag --no-address, wenn Sie den gcloud compute instances create Befehlausführen:

gcloud compute instances create TPU_NAME \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --zone=ZONE \
    --maintenance-policy=TERMINATE \
    --network=NETWORK_NAME \
    --subnet=SUBNET_NAME \
    --stack-type=STACK_TYPE \
    --private-network-ip=INTERNAL_IPV4_ADDRESS \
    --no-address

Ersetzen Sie die folgenden Platzhalter:

  • TPU_NAME: Ein Name für die TPU-VM.
  • MACHINE_TYPE: Der Maschinentyp für die TPU-VM (z. B. ct6e-standard-8t).
  • IMAGE_FAMILY: Die Betriebssystem-Image-Familie für die TPU-VM. Wenn Sie eine bestimmte Betriebssystemversion installieren möchten, verwenden Sie das Flag --image. Weitere Informationen zu Betriebssystem-Images finden Sie unter Betriebssystem-Images.
  • IMAGE_PROJECT: Das Projekt, das das Betriebssystem-Image enthält. Für TPU-Images ist dies ubuntu-os-accelerator-images.
  • ZONE: Die Zone für die TPU-VM (z. B. us-central1-b).
  • NETWORK_NAME: Optional: Name des Netzwerks. Wenn Sie ein Netzwerk angeben, müssen Sie ein Subnetz angeben, das zu demselben Netzwerk gehören muss. Wenn Sie kein Netzwerk angeben, leitet Compute Engine das Netzwerk aus dem angegebenen Subnetz ab.
  • SUBNET_NAME: Name des Subnetzes, das mit der Instanz verwendet werden soll.

    Mit dem Befehl gcloud compute networks subnets list rufen Sie eine Liste der Subnetze im Netzwerk auf.

  • STACK_TYPE: Optional: Der Netzwerkstacktyp für die Netzwerkschnittstelle. STACK_TYPE muss einer der folgenden Werte sein: IPV4_ONLY, IPV4_IPV6, oder IPV6_ONLY (Vorschau). Der Standardwert ist IPV4_ONLY.

  • INTERNAL_IPV4_ADDRESS (optional): Die interne IPv4-Adresse, die die Compute-Instanz im Zielsubnetz verwenden soll. Lassen Sie dieses Flag weg, wenn Sie keine bestimmte IP-Adresse benötigen.

    Verwenden Sie stattdessen das Flag --internal-ipv6-address, um eine interne IPv6-Adresse anzugeben.

TPU-VM-Instanz mit einer externen IP-Adresse erstellen

Wenn Sie eine TPU-VM-Instanz mit der gcloud CLI erstellen, erhält die Instanz standardmäßig eine sitzungsspezifische externe IP-Adresse.

Wenn Sie eine TPU-VM mit einer externen IP-Adresse erstellen möchten und die REST API verwenden, senden Sie eine POST Anfrage an die instances.insert Methode und fügen Sie das accessConfigs Feld im networkInterfaces Array im Anfragetext ein. Wenn das Feld accessConfigs im Anfragetext nicht angegeben ist, hat die Instanz keinen externen Internetzugriff.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
    "machineType":"zones/ZONE/machineTypes/MACHINE_TYPE",
    "name":"TPU_NAME",
    "disks":[
        {
            "initializeParams":{
                "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
            },
            "boot":true
        }
    ],
    "networkInterfaces":[
        {
            "network":"global/networks/NETWORK_NAME",
            "subnetwork":"regions/REGION/subnetworks/SUBNET_NAME",
            "stackType":"STACK_TYPE",
            "accessConfigs":[
                {
                    "name": "external-nat",
                    "type": "ONE_TO_ONE_NAT"
                }
            ]
        }
    ],
    "scheduling": {
        "onHostMaintenance": "TERMINATE"
    }
}

Ersetzen Sie die folgenden Platzhalter:

  • PROJECT_ID: Die ID des Projekts, in dem Sie die TPU-VM erstellen möchten.
  • ZONE: Die Zone für die TPU VM (z. B. us-central1-b).
  • MACHINE_TYPE: Der Maschinentyp für die TPU-VM (z. B. ct6e-standard-8t).
  • TPU_NAME: Ein Name für die TPU-VM.
  • IMAGE_PROJECT: Das Projekt, das das Betriebssystem Image enthält. Für TPU-Images ist dies ubuntu-os-accelerator-images.
  • IMAGE_FAMILY: Die Betriebssystem-Image-Familie für die TPU-VM. Wenn Sie eine bestimmte Betriebssystemversion installieren möchten, ersetzen Sie den gesamten Wert durch den Namen der Image-Version im folgenden Format: projects/IMAGE_PROJECT/global/images/IMAGE_NAME."sourceImage"

    Weitere Informationen zu Betriebssystem-Images finden Sie unter Betriebssystem-Images.

  • NETWORK_NAME: Optional: Name des Netzwerks. Wenn Sie ein Netzwerk angeben, müssen Sie ein Subnetz angeben, das zu demselben Netzwerk gehören muss. Wenn Sie kein Netzwerk angeben, leitet Compute Engine das Netzwerk aus dem angegebenen Subnetz ab.

  • REGION: Die Region des Subnetzwerks.

  • SUBNET_NAME: Name des Subnetzes, das mit der Instanz verwendet werden soll.

    Mit dem Befehl gcloud compute networks subnets list rufen Sie eine Liste der Subnetze im Netzwerk auf.

  • STACK_TYPE: Optional: Der Stacktyp für die Netzwerkschnittstelle. STACK_TYPE muss einer der folgenden Werte sein: IPV4_ONLY, IPV4_IPV6, oder IPV6_ONLY (Vorschau). Der Standardwert ist IPV4_ONLY.

Wenn Sie bereits eine statische externe IP-Adresse reserviert haben, können Sie sie der Instanz bei der Erstellung mit dem Flag --address und der statischen IP-Adresse oder dem Flag --network-interface zuweisen, um die Netzwerkkonfiguration im Detail festzulegen. Weitere Informationen finden Sie unter Statische externe IP Adressen konfigurieren.

SSH-Zugriff auf eine TPU-VM-Instanz aktivieren

So aktivieren Sie den SSH-Zugriff auf eine TPU-VM-Instanz:

  • Die TPU-Instanz muss über eine externe IP-Adresse oder den privater Google-Zugriff erreichbar sein.
    • Wenn Sie die TPU-Instanz mit der gcloud CLI erstellen, erhält die Instanz standardmäßig eine sitzungsspezifische externe IP-Adresse. Wenn Sie die TPU-Instanz mit der REST API erstellen, müssen Sie angeben, dass die Instanz eine externe IP-Adresse haben soll. Weitere Informationen finden Sie unter TPU-VM-Instanz mit einer externen IP-Adresse erstellen.
    • Wenn Ihre TPU-Instanzen keine externen IP-Adressen haben, können Sie den privater Google-Zugriff konfigurieren. Weitere Informationen finden Sie unter Privaten Google-Zugriff aktivieren.
  • Das Netzwerk, das die TPU-Instanz verwendet, muss SSH-Traffic zulassen. Das Standardnetzwerk lässt SSH-Traffic automatisch zu. Wenn Sie ein benutzerdefiniertes Netzwerk verwenden oder die Standardeinstellungen für das Netzwerk ändern, müssen Sie SSH im Netzwerk explizit aktivieren im Netzwerk.

Privaten Google-Zugriff aktivieren

TPUs ohne externe IP-Adressen können über den privaten Google-Zugriff auf Google-APIs und ‑Dienste zugreifen. Weitere Informationen zur Aktivierung des privater Google-Zugriff finden Sie unter Privaten Google-Zugriff konfigurieren.

Nachdem Sie den privater Google-Zugriff konfiguriert haben, stellen Sie eine SSH-Verbindung zur VM her.

SSH-Traffic im Netzwerk aktivieren

Das Standardnetzwerk erlaubt den SSH-Zugriff auf alle TPU-VMs. Wenn Sie ein benutzerdefiniertes Netzwerk verwenden oder die Standardeinstellungen für das Netzwerk ändern, müssen Sie den SSH-Zugriff explizit durch Hinzufügen einer Firewallregel aktivieren:

gcloud compute firewall-rules create \
    --network=NETWORK allow-ssh \
    --allow=tcp:22

Benutzerdefiniertes Dienstkonto anhängen

Jeder TPU-VM ist ein Dienstkonto zugeordnet, mit dem in Ihrem Namen API-Anfragen gestellt werden. TPU-VMs verwenden dieses Dienstkonto, um Compute Engine APIs aufzurufen und auf Cloud Storage und andere Dienste zuzugreifen. Standardmäßig verwendet Ihre TPU-VM das Compute Engine-Standarddienst konto.

Weitere Informationen zu Dienstkonten finden Sie unter Dienstkonten.

Wenn Sie beim Erstellen einer TPU-VM-Instanz ein benutzerdefiniertes Dienstkonto angeben möchten, verwenden Sie den gcloud compute instances create Befehl und geben Sie die Dienst konto-E-Mail-Adresse sowie den cloud-platform Zugriffsbereich für die VM-Instanz an:

gcloud compute instances create TPU_NAME \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --zone=ZONE \
    --maintenance-policy=TERMINATE \
    --service-account=SERVICE_ACCOUNT_EMAIL \
    --scopes=https://www.googleapis.com/auth/cloud-platform

Ersetzen Sie Folgendes:

  • TPU_NAME: Ein Name für die TPU-VM.
  • MACHINE_TYPE: Der Maschinentyp für die TPU-VM (z. B. ct6e-standard-8t).
  • IMAGE_FAMILY: Die Betriebssystem-Image-Familie für die TPU-VM. Wenn Sie eine bestimmte Betriebssystemversion installieren möchten, verwenden Sie das Flag --image. Weitere Informationen zu Betriebssystem-Images finden Sie unter Betriebssystem Images.
  • IMAGE_PROJECT: Das Projekt, das das Betriebssystem Image enthält. Für TPU-Images ist dies ubuntu-os-accelerator-images.
  • ZONE: Die Zone für die TPU-VM (z. B. us-central1-b).
  • SERVICE_ACCOUNT_EMAIL: Die E-Mail-Adresse des Dienstkontos, das Sie erstellt haben. Beispiel: my-sa-123@my-project-123.iam.gserviceaccount.com. Informationen zum Aufrufen der E-Mail Adresse finden Sie unter Dienstkonten auflisten.

Wenn Sie ein Dienstkonto in einem anderen Projekt verwenden möchten als dem, in dem Sie die TPU VM erstellen, folgen Sie der Anleitung unter Projektübergreifendes Dienst konto verwenden.

VPC Service Controls einbinden

Mit VPC Service Controls können Sie Sicherheitsperimeter für Ihre TPU-Ressourcen definieren und die Übertragung von Daten über die Perimetergrenze steuern. Weitere Informationen finden Sie unter VPC Service Controls – Übersicht. Welche Einschränkungen sich bei Verwendung von TPUs mit VPC Service Controls ergeben, erfahren Sie unter Unterstützte Produkte und Einschränkungen.