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.
Erstellen Sie ein Netzwerk und ein Subnetzwerk. Folgen Sie dazu der Anleitung unter VPC-Netzwerk.
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 Befehls
gcloud compute instances createdie 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_ADDRESSErsetzen 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 listrufen Sie eine Liste der Subnetze im Netzwerk auf.STACK_TYPE: Optional: Der Netzwerkstacktyp für die Netzwerkschnittstelle.
STACK_TYPEmuss einer der folgenden Werte sein:IPV4_ONLY,IPV4_IPV6, oderIPV6_ONLY(Vorschau). Der Standardwert istIPV4_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:
- Eine gültige IPv4-Adresse aus dem angegebenen Subnetz. Sie müssen zuvor eine externe IPv4 Adresse reserviert haben.
''(eine leere String), um eine sitzungsspezifische externe IP-Adresse zu verwenden.
Wenn die VM keine externe IP-Adresse haben soll, ersetzen Sie das Flag
--addressdurch 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 listrufen Sie eine Liste der Subnetze im Netzwerk auf.STACK_TYPE: Optional: Der Netzwerkstacktyp für die Netzwerkschnittstelle.
STACK_TYPEmuss einer der folgenden Werte sein:IPV4_ONLY,IPV4_IPV6, oderIPV6_ONLY(Vorschau). Der Standardwert istIPV4_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 listrufen Sie eine Liste der Subnetze im Netzwerk auf.STACK_TYPE: Optional: Der Stacktyp für die Netzwerkschnittstelle.
STACK_TYPEmuss einer der folgenden Werte sein:IPV4_ONLY,IPV4_IPV6, oderIPV6_ONLY(Vorschau). Der Standardwert istIPV4_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.