Configurer la mise en réseau et l'accès à une instance TPU

Cette page explique comment configurer certains paramètres réseau et d'accès personnalisés pour une instance 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 Google Cloud projetet activer l'API Compute Engine. Pour obtenir des instructions, consultez Configurer un Google Cloud projet pour les TPU.

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

Lorsque vous créez une instance de VM TPU ou un modèle d'instance, vous pouvez éventuellement spécifier le réseau et le sous-réseau à utiliser pour le TPU. Si vous ne spécifiez pas de réseau, le TPU se trouvera 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 et un sous-réseau en suivant les instructions pour créer un réseau VPC.

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

    Pour spécifier le réseau et le sous-réseau, incluez les options de mise en réseau indiquées dans l'exemple suivant lorsque vous exécutez la gcloud compute instances create commande :

    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_ADDRESS
    

    Remplacez les espaces réservés suivants :

    • TPU_NAME : nom de la VM TPU.
    • MACHINE_TYPE : type de machine de la VM TPU (par exemple, ct6e-standard-8t).
    • IMAGE_FAMILY : famille d'images d'OS pour la VM TPU. Si vous souhaitez installer une version d'OS spécifique, utilisez l'option --image. Pour en savoir plus sur les images d'OS, consultez Images d'OS.
    • IMAGE_PROJECT : projet contenant l'image d'OS. Pour les images TPU, il s'agit de ubuntu-os-accelerator-images.
    • ZONE : zone de la VM TPU (par exemple, us-central1-b).
    • NETWORK_NAME : nom du réseau (facultatif). Si vous spécifiez un réseau, vous devez spécifier un sous-réseau et il doit appartenir au même réseau. Si vous ne spécifiez pas de réseau, Compute Engine déduit le réseau à partir du sous-réseau spécifié.
    • SUBNET_NAME : nom du sous-réseau à utiliser avec l' instance.

      Pour afficher la liste des sous-réseaux dans le réseau, utilisez la commandegcloud compute networks subnets list.

    • STACK_TYPE : type de pile de mise en réseau pour l'interface réseau (facultatif) . STACK_TYPE doit être l'une des valeurs suivantes : IPV4_ONLY, IPV4_IPV6, ou IPV6_ONLY (Preview). La valeur par défaut est IPV4_ONLY.

    • INTERNAL_IPV4_ADDRESS : adresse IPv4 interne que vous souhaitez que l'instance de calcul utilise dans le sous-réseau cible (facultatif). Omettez ce flag si vous n'avez pas besoin d'une adresse IP spécifique.

      Pour spécifier une adresse IPv6 interne, utilisez plutôt le flag --internal-ipv6-address.

    • EXTERNAL_IPV4_ADDRESS : adresse IPv4 externe statique à utiliser avec l'interface réseau (facultatif). Remplacez EXTERNAL_IPV4_ADDRESS par l'une des valeurs suivantes :

      • Une adresse IPv4 valide du sous-réseau spécifié. Vous devez avoir réservé une adresse IPv4 externe au préalable .
      • '' (chaîne vide) pour utiliser une adresse IP externe éphémère.

      Si vous ne souhaitez pas que la VM dispose d'une adresse IP externe, remplacez le flag --address par le flag --no-address.

      Pour spécifier une adresse IPv6 externe, utilisez plutôt le flag --external-ipv6-address.

Comprendre les adresses IP externes et internes

Lorsque vous créez des instances de VM TPU, elles disposent toujours d'adresses IP internes. Si vous créez vos instances TPU à l'aide de la gcloud CLI, des adresses IP externes sont générées par défaut. Si vous les créez à l'aide des API REST Compute Engine (compute.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.

Voici quelques raisons pour lesquelles vous pouvez limiter l'utilisation des adresses IP internes uniquement pour vos VM TPU :

  • 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 aux VM TPU à des utilisateurs ou des 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 à bande passante élevée entre les VM TPU.

Créer une instance de VM TPU sans adresse IP externe

Si vous souhaitez créer une instance de VM TPU sans adresse IP externe, utilisez le flag --no-address lorsque vous exécutez la gcloud compute instances create commande :

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

Remplacez les espaces réservés suivants :

  • TPU_NAME : nom de la VM TPU.
  • MACHINE_TYPE : type de machine de la VM TPU (par exemple, ct6e-standard-8t).
  • IMAGE_FAMILY : famille d'images d'OS pour la VM TPU. Si vous souhaitez installer une version d'OS spécifique, utilisez l'option --image. Pour en savoir plus sur les images d'OS, consultez Images d'OS.
  • IMAGE_PROJECT : projet contenant l'image d'OS. Pour les images TPU, il s'agit de ubuntu-os-accelerator-images.
  • ZONE : zone de la VM TPU (par exemple, us-central1-b).
  • NETWORK_NAME : nom du réseau (facultatif). Si vous spécifiez un réseau, vous devez spécifier un sous-réseau et il doit appartenir au même réseau. Si vous ne spécifiez pas de réseau, Compute Engine déduit le réseau à partir du sous-réseau spécifié.
  • SUBNET_NAME : nom du sous-réseau à utiliser avec l'instance.

    Pour afficher la liste des sous-réseaux dans le réseau, utilisez la gcloud compute networks subnets list commande.

  • STACK_TYPE : type de pile de mise en réseau pour l'interface réseau (facultatif). STACK_TYPE doit être l'une des valeurs suivantes : IPV4_ONLY, IPV4_IPV6, ou IPV6_ONLY (Preview). La valeur par défaut est IPV4_ONLY.

  • INTERNAL_IPV4_ADDRESS : (facultatif) adresse IPv4 interne que vous souhaitez que l'instance de calcul utilise dans le sous-réseau cible. Omettez ce flag si vous n'avez pas besoin d'une adresse IP spécifique.

    Pour spécifier une adresse IPv6 interne, utilisez plutôt le flag --internal-ipv6-address.

Créer une instance de VM TPU avec une adresse IP externe

Lorsque vous créez une instance de VM TPU à l'aide de la gcloud CLI, l'instance reçoit une adresse IP externe éphémère par défaut.

Pour créer une VM TPU avec une adresse IP externe lorsque vous utilisez l'API REST, envoyez une POST requête à la instances.insert méthode et incluez le accessConfigs champ dans le networkInterfaces tableau du corps de la requête. Si le corps de la requête ne spécifie pas le champ accessConfigs, l'instance n'aura pas d'accès Internet externe.

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

Remplacez les espaces réservés suivants :

  • PROJECT_ID : ID du projet dans lequel vous souhaitez créer la VM TPU.
  • ZONE : zone de la VM TPU (par exemple, us-central1-b).
  • MACHINE_TYPE : type de machine de la VM TPU (par exemple, ct6e-standard-8t).
  • TPU_NAME : nom de la VM TPU.
  • IMAGE_PROJECT : projet contenant l'image d'OS. Pour les images TPU, il s'agit de ubuntu-os-accelerator-images.
  • IMAGE_FAMILY : famille d'images d'OS pour la VM TPU. Si vous souhaitez installer une version d'OS spécifique, remplacez l'intégralité de la valeur "sourceImage" par le nom de la version de l'image au format suivant : projects/IMAGE_PROJECT/global/images/IMAGE_NAME.

    Pour en savoir plus sur les images d'OS, consultez Images d'OS.

  • NETWORK_NAME : nom du réseau (facultatif). Si vous spécifiez un réseau, vous devez spécifier un sous-réseau et il doit appartenir au même réseau. Si vous ne spécifiez pas de réseau, Compute Engine déduit le réseau à partir du sous-réseau spécifié.

  • REGION : région du sous-réseau.

  • SUBNET_NAME : nom du sous-réseau à utiliser avec l'instance.

    Pour afficher la liste des sous-réseaux dans le réseau, utilisez la gcloud compute networks subnets list commande.

  • STACK_TYPE : (facultatif) type de pile pour l'interface réseau. STACK_TYPE doit être l'une des valeurs suivantes : IPV4_ONLY, IPV4_IPV6 ou IPV6_ONLY (Preview). La valeur par défaut est IPV4_ONLY.

Si vous avez déjà réservé une adresse IP externe statique, vous pouvez l'attribuer à l'instance au moment de la création à l'aide du --address flag avec l'adresse IP statique ou du --network-interface flag pour définir la configuration réseau détaillée. Pour en savoir plus, consultez Configurer des adresses IP externes statiques.

Activer l'accès SSH à une instance de VM TPU

Pour activer l'accès SSH à une instance de VM TPU :

  • L'instance TPU doit être accessible via une adresse IP externe ou l'accès privé à Google.
    • Si vous créez l'instance TPU à l'aide de la gcloud CLI, l'instance reçoit une adresse IP externe éphémère par défaut. Si vous créez l'instance TPU à l'aide de l'API REST, vous devez spécifier que l'instance doit disposer d'une adresse IP externe. Pour en savoir plus, consultez Créer une instance de VM TPU avec une adresse IP externe.
    • Si vos instances TPU ne disposent pas d'adresses IP externes, vous pouvez configurer l'accès privé à Google. Pour en savoir plus, consultez Activer l'accès privé à Google.
  • Le réseau utilisé par l'instance TPU doit autoriser le trafic SSH. Le réseau par défaut autorise automatiquement le trafic SSH. Si vous utilisez un réseau personnalisé ou si vous modifiez les paramètres réseau par défaut, vous devez activer explicitement SSH sur le réseau.

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.

Activer le trafic SSH sur le réseau

Le réseau par défaut autorise l'accès SSH à toutes les VM TPU. Si vous utilisez un réseau personnalisé 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

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

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

Pour spécifier un compte de service personnalisé lors de la création d'une instance de VM TPU, utilisez la gcloud compute instances create commande et indiquez l'adresse e-mail du compte de service ainsi que le niveau d'accès cloud-platform à l'instance de VM :

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

Remplacez les éléments suivants :

Pour utiliser un compte de service dans un projet différent de celui dans lequel vous créez la VM TPU, suivez les instructions de la section Utiliser un compte de service multiprojet.

Intégrer à VPC Service Controls

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