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.
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.
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
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 Feldernetwork
undsubnetwork
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