Netzwerk und Zugriff auf Ihre Cloud TPU konfigurieren

Auf dieser Seite wird beschrieben, wie Sie benutzerdefinierte Netzwerk- und Zugriffskonfigurationen für Ihre Cloud TPU 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 Google Cloud Projekt erstellen und die Cloud TPU API aktivieren. Eine Anleitung dazu finden Sie unter Cloud TPU-Umgebung einrichten.

Benutzerdefiniertes Netzwerk und Subnetzwerk angeben

Optional können Sie auch das Netzwerk und das Subnetzwerk für die Verwendung in der TPU angeben. Wenn das Netzwerk nicht angegeben ist, 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, das einem der folgenden gültigen Formate entspricht:

    • compute/{version}/projects/{proj-id}/global/networks/{network}
    • compute/{version}/projects/{proj-##}/global/networks/{network}
    • projects/{proj-id}/global/networks/{network}
    • projects/{proj-##}/global/networks/{network}
    • global/networks/{network}
    • {network}

    Weitere Informationen finden Sie unter VPC-Netzwerke erstellen und verwalten.

  2. Erstellen Sie ein Subnetzwerk, das einem der folgenden gültigen Formate entspricht:

    • compute/{version}/projects/{proj-id}/regions/{region}/subnetworks/{subnetwork}
    • compute/{version}/projects/{proj-##}/regions/{region}/subnetworks/{subnetwork}
    • projects/{proj-id}/regions/{region}/subnetworks/{subnetwork}
    • projects/{proj-##}/regions/{region}/subnetworks/{subnetwork}
    • regions/{region}/subnetworks/{subnetwork}
    • {subnetwork}

    Weitere Informationen finden Sie unter VPC-Netzwerke erstellen und verwalten.

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

    gcloud

    Wenn Sie das Netzwerk und das Subnetzwerk mit der gcloud CLI angeben möchten, fügen Sie Ihrer Erstellungsanfrage die Flags --network und --subnetwork hinzu:

        $ gcloud compute tpus tpu-vm create TPU_NAME \
            --zone=us-central2-b \
            --accelerator-type=v4-8 \
            --version=TPU_SOFTWARE_VERSION \
            --network=NETWORK \
            --subnetwork=SUBNETWORK

    curl

    Wenn Sie das Netzwerk und das Subnetzwerk in einem curl-Aufruf angeben möchten, fügen Sie dem Anfragetext die Felder network und subnetwork hinzu:

        $ curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -d "{accelerator_type: 'v4-8', \
            runtime_version:'tpu-vm-tf-2.17.1-pjrt', \
            network_config: {network: 'NETWORK', subnetwork: 'SUBNETWORK', enable_external_ips: true}, \
            shielded_instance_config: { enable_secure_boot: true }}" \
            https://tpu.googleapis.com/v2/projects/PROJECT_ID/locations/us-central2-b/nodes?node_id=TPU_NAME

Externe und interne IP-Adressen

Wenn Sie TPU-VMs erstellen, werden ihnen immer automatisch interne IP-Adressen zugewiesen. Wenn die TPU-VMs über die gcloud CLI erstellt werden, werden standardmäßig externe IP-Adressen generiert. Wenn sie über die Cloud TPU REST APIs (tpu.googleapis.com) erstellt werden, wird standardmäßig keine externe IP-Adresse zugewiesen. Sie können das Standardverhalten in beiden Fällen ändern.

Externe IP-Adressen

Wenn Sie eine TPU mit gcloud erstellen, werden standardmäßig für jede TPU-VM externe IP-Adressen erstellt. Wenn Sie eine TPU-VM ohne externe IP-Adresse erstellen möchten, verwenden Sie das Flag --internal-ips, das in den folgenden Beispielen veranschaulicht wird.

gcloud

Wenn Sie in die Warteschlange gestellte Ressourcen verwenden:

gcloud compute tpus queued-resources create your-queued-resource-id \
  --node-id your-node-id \
  --project your-project \
  --zone us-central2-b \
  --accelerator-type v4-8 \
  --runtime-version tpu_software_version \
  --internal-ips

Wenn Sie die Create Node API verwenden:

$ gcloud compute tpus tpu-vm create TPU_NAME \
    --zone=us-central2-b \
    --accelerator-type=v4-8 \
    --version=tpu_software_version \
    --internal-ips

curl

Legen Sie im Anfragetext das Feld enable_external_ips auf false fest:

$ curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -d "{accelerator_type: 'v4-8', \
    runtime_version:'tpu-vm-tf-2.17.1-pjrt', \
    network_config: {enable_external_ips: false}, \
    shielded_instance_config: { enable_secure_boot: true }}" \
    https://tpu.googleapis.com/v2/projects/PROJECT_ID/locations/us-central2-b/nodes?node_id=TPU_NAME

Wenn Sie eine TPU-VM mit einer externen IP-Adresse erstellen möchten und die REST API (tpu.googleapis.com) verwenden, legen Sie das Feld networkconfig.enable_external_ips in der Anfrage auf true fest.

Interne IP-Adressen

TPU-VMs haben immer interne IP-Adressen. Cloud TPU-Nutzer möchten ihre TPU-VMs möglicherweise aus den folgenden wichtigen Gründen auf interne IP-Adressen beschränken:

Erhöhte Sicherheit: Auf interne IP-Adressen kann nur durch Ressourcen innerhalb desselben VPC-Netzwerks 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 Ihre TPUs 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.

Benutzerdefinierte SSH-Methoden aktivieren

Wenn Sie eine SSH-Verbindung zu TPUs herstellen möchten, müssen Sie entweder externe IP-Adressen für die TPUs oder privaten Google-Zugriff für das Subnetzwerk aktivieren, mit dem die TPU-VMs verbunden sind.

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 privaten Google-Zugriffs finden Sie unter Privaten Google-Zugriff konfigurieren.

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

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 Cloud TPU-APIs aufzurufen und auf Cloud Storage und andere Dienste zuzugreifen. Standardmäßig verwendet Ihre TPU-VM das Compute Engine-Standarddienstkonto.

Das Dienstkonto muss in dem Google Cloud Projekt definiert werden, in dem Sie Ihre TPU-VM erstellen. Benutzerdefinierte Dienstkonten, die für TPU-VMs verwendet werden, müssen die Rolle TPU-Betrachter haben, um die Cloud TPU API aufrufen zu können. Wenn der in Ihrer TPU-VM ausgeführte Code andere Google Cloud Dienste aufruft, muss er die erforderlichen Rollen für den Zugriff auf diese Dienste haben.

Weitere Informationen zu Dienstkonten finden Sie unter Dienstkonten.

Verwenden Sie die folgenden Befehle, um ein benutzerdefiniertes Dienstkonto anzugeben.

gcloud

Verwenden Sie beim Erstellen einer TPU das Flag --service-account:

$ gcloud compute tpus tpu-vm create TPU_NAME \
    --zone=us-central2-b \
    --accelerator-type=TPU_TYPE \
    --version=tpu-vm-tf-2.17.1-pjrt \
    --service-account=SERVICE_ACCOUNT

curl

Legen Sie im Anfragetext das Feld service_account fest:

$ curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -d "{accelerator_type: 'v4-8', \
    runtime_version:'tpu-vm-tf-2.17.1-pjrt', \
    network_config: {enable_external_ips: true}, \
    shielded_instance_config: { enable_secure_boot: true }}" \
    service_account: {email: 'SERVICE_ACCOUNT'} \
    https://tpu.googleapis.com/v2/projects/PROJECT_ID/locations/us-central2-b/nodes?node_id=TPU_NAME

Benutzerdefinierte SSH-Methoden aktivieren

Das Standardnetzwerk erlaubt den SSH-Zugriff auf alle TPU-VMs. Wenn Sie ein anderes Netzwerk als das Standardnetzwerk 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

VPC Service Controls einbinden

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