Netzwerk und Zugriff auf Cloud TPU konfigurieren

Auf dieser Seite wird beschrieben, wie Sie benutzerdefinierte Netzwerk- und Zugriffskonfigurationen für Ihre Cloud TPU, einschließlich:

  • Benutzerdefiniertes Netzwerk und Subnetzwerk angeben
  • Interne IP-Adressen angeben
  • SSH-Zugriff auf TPUs aktivieren
  • Benutzerdefiniertes Dienstkonto an Ihre TPU anhängen
  • Benutzerdefinierte SSH-Methoden aktivieren

Vorbereitung

Bevor Sie diese Schritte ausführen 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 Siehe Cloud TPU-Umgebung einrichten

Benutzerdefiniertes Netzwerk und Subnetzwerk angeben

Optional können Sie das Netzwerk und das Subnetzwerk angeben, das für die TPU verwendet werden soll. Wenn der Parameter nicht angegeben ist, befindet sich die TPU im default-Netzwerk. Das Subnetzwerk 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:

    • https://www.googleapis.com/compute/{version}/projects/{proj-id}/global/networks/{network}
    • 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:

    • https://www.googleapis.com/compute/{version}/projects/{proj-id}/regions/{region}/subnetworks/{subnetwork}
    • 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 erstellen und verwalten Netzwerken

  3. Erstellen Sie die TPU und geben Sie das benutzerdefinierte Netzwerk und Subnetz an:

    gcloud

    Wenn Sie das Netzwerk und das Subnetzwerk mit der gcloud CLI angeben möchten, fügen Sie der Create-Anfrage 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.0-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

Interne IP-Adressen aktivieren

Wenn Sie eine TPU erstellen, werden externe IP-Adressen werden standardmäßig für jede TPU-VM erstellt.

Wenn Sie stattdessen interne IP-Adressen für Ihre TPU-VMs erstellen möchten, verwenden Sie die Methode Das Flag --internal-ips, wenn Sie die TPU erstellen.

gcloud

Wenn Sie Ressourcen in der Warteschlange 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 das Feld enable_external_ips im Anfragetext 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.0-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

Benutzerdefinierte SSH-Methoden aktivieren

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

Privaten Google-Zugriff aktivieren

TPUs, die keine externen IP-Adressen haben, können mit dem privater Google-Zugriff Folgendes tun: auf Google APIs und Google-Dienste zugreifen. Weitere Informationen zum Aktivieren 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, das für API-Anfragen verwendet wird. in Ihrem Namen. 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 sein, in dem Sie Erstellen Sie die TPU-VM. Benutzerdefinierte Dienstkonten für TPU-VMs müssen die TPU haben Viewer-Rolle zum Aufrufen der Cloud TPU der API erstellen. Wenn der auf 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.0-pjrt \
    --service-account=SERVICE_ACCOUNT

curl

Legen Sie das Feld service_account im Anfragetext 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.0-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 tpus tpu-vm compute firewall-rules create \
    --network=NETWORK allow-ssh \
    --allow=tcp:22