Configurer la mise en réseau et l'accès à votre Cloud TPU

Cette page explique comment configurer certains paramètres réseau et d'accès personnalisés pour votre Cloud TPU :

  • Spécifier un réseau et un sous-réseau personnalisés
  • Spécifier des adresses IP externes et internes
  • Activer l'accès SSH aux TPU
  • Associer un compte de service personnalisé à votre TPU
  • Activer des méthodes SSH personnalisées
  • Utiliser VPC Service Controls

Prérequis

Avant d'exécuter ces procédures, vous devez installer la Google Cloud CLI, créer un projet Google Cloud et activer l'API Cloud TPU. Pour obtenir des instructions, consultez Configurer l'environnement Cloud TPU.

Spécifier un réseau et un sous-réseau personnalisés

Vous pouvez éventuellement spécifier le réseau et le sous-réseau à utiliser pour le TPU. Si le réseau n'est pas spécifié, le TPU sera déployé dans le réseau default. Le sous-réseau doit se trouver dans la même région que la zone dans laquelle le TPU est exécuté.

  1. Créez un réseau qui correspond à l'un des formats valides suivants :

    • 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}

    Pour en savoir plus, consultez Créer et gérer des réseaux VPC.

  2. Créez un sous-réseau correspondant à l'un des formats valides suivants :

    • 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}

    Pour en savoir plus, consultez Créer et gérer des réseaux VPC.

  3. Créez une VM TPU en spécifiant le réseau et le sous-réseau personnalisés :

    gcloud

    Pour spécifier le réseau et le sous-réseau à l'aide de la CLI gcloud, ajoutez les options --network et --subnetwork à votre requête de création :

        $ 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

    Pour spécifier le réseau et le sous-réseau dans un appel curl, ajoutez les champs network et subnetwork au corps de la requête :

        $ 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

Comprendre les adresses IP externes et internes

Lorsque vous créez des VM TPU, elles sont automatiquement dotées d'adresses IP internes. Si vous les créez à l'aide de la gcloud CLI, des adresses IP externes sont générées par défaut. Si vous créez les VM TPU à l'aide des API REST Cloud TPU (tpu.googleapis.com), aucune adresse IP externe n'est attribuée par défaut. Dans les deux cas, vous pouvez modifier le comportement par défaut.

Adresses IP externes

Lorsque vous créez un TPU à l'aide de gcloud, des adresses IP externes sont générées par défaut pour chaque VM TPU. Si vous souhaitez créer une VM TPU sans adresse IP externe, utilisez l'option --internal-ips mentionnée dans les exemples suivants lorsque vous créez la VM TPU.

gcloud

Si vous utilisez des ressources mises en file d'attente :

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

Si vous utilisez l'API Create Node :

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

curl

Définissez le champ enable_external_ips sur false dans le corps de la requête :

$ 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

Pour créer une VM TPU avec une adresse IP externe lorsque vous utilisez l'API REST (tpu.googleapis.com), définissez le champ networkconfig.enable_external_ips de la requête sur true.

Adresses IP internes

Les VM TPU ont toujours des adresses IP internes. Il se peut que des utilisateurs de Cloud TPU ne souhaitent doter leurs VM TPU que d'adresses IP internes pour plusieurs raisons clés :

Sécurité renforcée : les adresses IP internes ne sont accessibles qu'aux ressources du même réseau VPC. La sécurité est ainsi renforcée, car l'accès externe aux VM TPU est limité. Cela est particulièrement important lorsque vous travaillez avec des données sensibles ou lorsque vous souhaitez limiter l'accès à vos TPU à des utilisateurs ou systèmes spécifiques de votre réseau.

Économies : en utilisant des adresses IP internes, vous pouvez éviter les coûts associés aux adresses IP externes, qui peuvent être importants si vous exploitez un grand nombre de VM TPU.

Amélioration des performances réseau : les adresses IP internes permettent d'améliorer les performances réseau, car le trafic reste dans le réseau de Google, ce qui évite les frais généraux liés au routage via l'Internet public. Cela est particulièrement pertinent pour les charges de travail de machine learning à grande échelle qui nécessitent une communication à haut débit entre les VM TPU.

Activer des méthodes SSH personnalisées

Pour vous connecter aux TPU via SSH, vous devez activer les adresses IP externes pour les TPU ou activer l'accès privé à Google pour le sous-réseau auquel les VM TPU sont connectées.

Activer l'accès privé à Google

Les TPU sans adresse IP externe peuvent utiliser l'accès privé à Google pour accéder aux API et services Google. Pour plus d'informations sur l'activation de l'accès privé à Google, consultez la page Configurer l'accès privé à Google.

Une fois l'accès privé à Google configuré, connectez-vous à la VM à l'aide de SSH.

Associer un compte de service personnalisé

Chaque VM TPU est associée à un compte de service qu'elle utilise pour envoyer des requêtes API en votre nom. Les VM TPU utilisent ce compte de service pour appeler les API Cloud TPU et accéder à Cloud Storage et à d'autres services. Par défaut, votre VM TPU utilise le compte de service Compute Engine par défaut.

Le compte de service doit être défini dans le même projet Google Cloud que celui dans lequel vous créez votre VM TPU. Les comptes de service personnalisés utilisés pour les VM TPU doivent disposer du rôle Lecteur TPU pour appeler l'API Cloud TPU. Si le code exécuté dans votre VM TPU appelle d'autres services Google Cloud , il doit disposer des rôles nécessaires pour accéder à ces services.

Pour plus d'informations sur les comptes de service, consultez Comptes de service.

Utilisez les commandes suivantes pour spécifier un compte de service personnalisé.

gcloud

Utilisez l'option --service-account lorsque vous créez un TPU :

$ 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

Définissez le champ service_account dans le corps de la requête :

$ 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

Activer des méthodes SSH personnalisées

Le réseau par défaut autorise l'accès SSH à toutes les VM TPU. Si vous utilisez un réseau autre que celui par défaut ou si vous modifiez les paramètres réseau par défaut, vous devez activer explicitement l'accès SSH en ajoutant une règle de pare-feu :

$ gcloud compute firewall-rules create \
    --network=NETWORK allow-ssh \
    --allow=tcp:22

Intégrer à VPC Service Controls

Le service VCP Service Controls de Cloud TPU vous permet de définir des périmètres de sécurité autour de vos ressources Cloud TPU et de contrôler le déplacement des données au-delà des limites de ces périmètres. Pour en savoir plus sur VPC Service Controls, consultez la présentation de VPC Service Controls. Pour en savoir plus sur les limites d'utilisation de Cloud TPU avec VPC Service Controls, consultez Produits compatibles et limites.