Netzwerk und Zugriff auf Cloud TPU konfigurieren

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

  • 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

Bevor Sie diese Schritte ausführen, müssen Sie die Google Cloud CLI installieren, ein Google Cloud Projekt erstellen und die Cloud TPU API aktivieren. Eine Anleitung finden Sie unter 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 das Netzwerk nicht angegeben ist, befindet sich die TPU im Netzwerk default. 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 Subnetz an:

    gcloud

    Wenn Sie das Netzwerk und das Subnetzwerk mit der gcloud-Befehlszeile 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.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 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 beim Erstellen der TPU-VM das Flag --internal-ips, das in den folgenden Beispielen zu sehen ist.

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 API „Knoten erstellen“ 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 mit der REST API (tpu.googleapis.com) eine TPU-VM mit einer externen IP-Adresse erstellen möchten, setzen Sie das Feld networkconfig.enable_external_ips in der Anfrage auf true.

Interne IP-Adressen

TPU-VMs haben immer interne IP-Adressen. Cloud TPU-Nutzer können ihre TPU-VMs aus folgenden Gründen auf interne IP-Adressen beschränken:

Erhöhte Sicherheit: Über interne IP-Adressen ist nur der Zugriff auf Ressourcen innerhalb desselben VPC-Netzwerks möglich. Dadurch kann die Sicherheit durch Einschränkung des externen Zugriffs auf die TPU-VMs verbessert werden. Das ist besonders wichtig, wenn Sie mit sensiblen 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 mit externen IP-Adressen verbundenen Kosten vermeiden, die bei einer großen Anzahl von TPU-VMs erheblich sein können.

Verbesserte Netzwerkleistung: Interne IP-Adressen können zu einer besseren Netzwerkleistung führen, da der Traffic im Google-Netzwerk verbleibt und so der Overhead beim Routing über das öffentliche Internet vermieden wird. Das ist besonders relevant für große maschinelle Lernarbeitslasten, die eine Kommunikation mit hoher Bandbreite zwischen TPU-VMs erfordern.

Benutzerdefinierte SSH-Methoden aktivieren

Wenn Sie über SSH eine Verbindung zu TPUs herstellen möchten, müssen Sie entweder externe IP-Adressen für die TPUs oder den 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 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

Jede TPU-VM ist mit einem Dienstkonto verknüpft, mit dem API-Anfragen in Ihrem Namen 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 im selben Projekt definiert werden, Google Cloud 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 aufzurufen. Wenn der Code, der auf Ihrer TPU-VM ausgeführt wird, 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.

Mit den folgenden Befehlen können Sie ein benutzerdefiniertes Dienstkonto angeben.

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

Mit VPC Service Controls verknüpfen

Mit Cloud TPU VPC Service Controls können Sie Sicherheitsbereiche für Ihre Cloud TPU-Ressourcen definieren und die Bewegung 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 Verwendung von Cloud TPU mit VPC Service Controls ergeben, erfahren Sie unter Unterstützte Produkte und Einschränkungen.