Ce document explique comment provisionner des pools de nœuds TPU et planifier des tranches dynamiques dans Google Kubernetes Engine (GKE) à l'aide de Kueue et de la planification tenant compte de la topologie (TAS).
Vous pouvez également utiliser le découpage dynamique en interagissant directement avec Découper les ressources personnalisées. Pour en savoir plus, consultez Utiliser le fractionnement dynamique avec un planificateur personnalisé.
Avant de suivre ces instructions, assurez-vous de bien comprendre les concepts du slicing dynamique.
Conditions requises
Pour utiliser le slicing dynamique dans GKE, vous devez répondre aux exigences suivantes :
- Utilisez un cluster standard dans le canal rapide avec l'une des versions suivantes :
- Pour la configuration du superslicing dynamique (topologies supérieures ou égales à
4x4x4), utilisez la version 1.35.2-gke.1842000 ou ultérieure. - Pour la configuration du sous-partitionnement dynamique (topologies plus petites que
4x4x4), utilisez la version 1.36.0-gke.3712000 ou ultérieure.
- Pour la configuration du superslicing dynamique (topologies supérieures ou égales à
- Utilisez la version Ironwood (TPU7x).
- Utilisez l'image Container-Optimized OS pour vos nœuds.
- Pour utiliser le provisionnement incrémentiel, utilisez les réservations en mode "Toute la capacité". Le mode "Toute capacité" est une fonctionnalité activée par TPU Cluster Director.
- Pour le sous-licenciement dynamique, assurez-vous que vos nœuds ont des événements de maintenance en attente. Surveillez vos instances pour détecter les événements de maintenance en attente. Si l'un de vos nœuds présente un événement de maintenance en attente dont l'heure de fin est comprise entre le 18 et le 30 septembre 2026, vous devez déclencher manuellement l'événement de maintenance de l'hôte sur ces nœuds avant de pouvoir utiliser le sous-partitionnement.
Avant de commencer
Avant de commencer, effectuez les tâches suivantes :
- Activez l'API Google Kubernetes Engine. Activer l'API Google Kubernetes Engine
- Pour utiliser Google Cloud CLI pour cette tâche, installez puis initialisez gcloud CLI. Si vous avez déjà installé la gcloud CLI, obtenez la dernière version en exécutant la commande
gcloud components update. Il est possible que les versions antérieures de la gcloud CLI ne permettent pas d'exécuter les commandes de ce document.
- Assurez-vous de disposer d'un cluster Standard existant dans la version 1.35.2-gke.1842000 ou ultérieure, dans le canal rapide. Pour créer un cluster, consultez Créer un cluster régional.
- Assurez-vous de disposer d'un quota suffisant pour Ironwood (TPU7x) dans votre région.
- Si vous prévoyez d'exécuter des charges de travail multislices, installez JobSet v0.10.1 ou version ultérieure.
- Demandez de la capacité TPU en mode "Toute la capacité".
Utiliser le slicing dynamique dans GKE avec Kueue
Cette section décrit le workflow d'utilisation du slicing dynamique dans GKE.
- Affichez la topologie et l'état des réservations en mode "Toute capacité".
- Activez le contrôleur de tranche dans votre cluster.
- Installez Kueue, JobSet et LWS.
- Créez des pools de nœuds TPU.
- Configurez Kueue pour créer une ressource personnalisée Slice.
- Exécutez des charges de travail sur le découpage dynamique avec Kueue.
- Effectuez un nettoyage.
Activer le contrôleur de segments
Pour utiliser le slicing dynamique, activez le contrôleur de tranche dans votre cluster.
Mettez à jour votre cluster :
gcloud container clusters update CLUSTER_NAME \ --location=LOCATION \ --enable-slice-controllerRemplacez les éléments suivants :
CLUSTER_NAME: nom du clusterLOCATION: région dans laquelle votre capacité de TPU disponible est située.
Obtenez des identifiants pour pouvoir communiquer avec votre cluster à l'aide des commandes
kubectl:gcloud config set container/cluster CLUSTER_NAME gcloud container clusters get-credentials CLUSTER_NAME \ --location=LOCATIONDans le résultat de la commande suivante, vérifiez que la valeur
slices.accelerator.gke.ioest présente :kubectl get crd slices.accelerator.gke.ioLe résultat ressemble à ce qui suit :
slices.accelerator.gke.io 2026-01-09T23:58:02Z
Installer Kueue, JobSet et LWS
Si vous avez déjà installé Kueue, JobSet et LWS, vous pouvez ignorer cette section.
Installer Kueue
Suivez les instructions de la documentation Kueue ou exécutez la commande suivante :
kubectl apply --server-side -f https://github.com/kubernetes-sigs/kueue/releases/download/KUEUE_VERSION/manifests.yaml
Remplacez KUEUE_VERSION par la version de Kueue requise en fonction de vos exigences de topologie. Pour le sous-licenciement dynamique, utilisez Kueue v0.18.2 ou version ultérieure. Pour le superslicing dynamique, utilisez Kueue v0.16.6 ou version ultérieure.
Installer JobSet
Suivez les instructions de la documentation JobSet ou exécutez la commande suivante :
kubectl apply --server-side -f https://github.com/kubernetes-sigs/jobset/releases/download/JOBSET_VERSION/manifests.yaml
Remplacez JOBSET_VERSION par la version JobSet requise en fonction des exigences de votre topologie. Pour le sous-licenciement dynamique, utilisez JobSet v0.12.0 ou version ultérieure. Pour le super-slicing dynamique, utilisez JobSet v0.11.1 ou version ultérieure.
Installer LWS
Le LeaderWorkerSet (LWS) n'est requis que pour la sous-licence dynamique.
Suivez les instructions de la documentation LWS ou exécutez la commande suivante :
kubectl apply --server-side -f https://github.com/kubernetes-sigs/lws/releases/download/LWS_VERSION/manifests.yaml
Remplacez LWS_VERSION par la version LWS requise. Utilisez LWS v0.8.0 ou version ultérieure.
Créer des pools de nœuds avec provisionnement incrémentiel
Cette section explique comment créer des pools de nœuds TPU avec provisionnement incrémental. GKE convertit toute votre capacité TPU en pools de nœuds comprenant des groupes de 16 nœuds de VM Ironwood (TPU7x), ou sous-blocs. GKE provisionne ces pools de nœuds même lorsqu'il ne parvient pas à trouver toutes les VM opérationnelles. Pour ce faire, il place les nœuds sur les parties opérationnelles de la machine hôte et provisionne progressivement les machines non opérationnelles pendant qu'elles sont réparées.
Vous pouvez cibler votre pool de nœuds pour qu'il appartienne à l'un des éléments suivants :
- Bloc spécifique de TPU, exposé dans les réservations en mode "Toute la capacité". Le ciblage par bloc permet à GKE de créer le pool de nœuds dans n'importe quel sous-bloc disponible du bloc spécifié.
- Un sous-bloc spécifique ou un groupe de 16 nœuds de VM Ironwood (TPU7x) de TPU pour un contrôle plus précis.
Créer une règle de charge de travail
Pour créer un pool de nœuds de tranche TPU avec Ironwood (TPU7x), vous devez d'abord créer une règle de charge de travail avec le champ accelerator-topology-mode défini sur provision_only. Ce paramètre déclenche le processus de provisionnement incrémentiel.
Créez une règle de charge de travail :
gcloud compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \
--project=PROJECT_ID \
--region=REGION \
--type=HIGH_THROUGHPUT \
--accelerator-topology=4x4x4 \
--accelerator-topology-mode=provision_only
Remplacez les éléments suivants :
WORKLOAD_POLICY_NAME: nom de votre règle de charge de travail.PROJECT_ID: ID de votre projet Google Cloud .REGION: région de la règle de charge de travail.
Dans cette commande, procédez comme suit :
- Définissez toujours le champ
accelerator-topologysur4x4x4pour qu'il corresponde au nombre total de jetons dans un même sous-bloc. - Définissez toujours le champ
accelerator-topology-modesurprovision_onlypour vous assurer que le processus de provisionnement incrémentiel est déclenché. Lorsque le champprovision_onlyest défini, le pool de nœuds provisionne des nœuds TPU sans former de liens ICI ni OCS.
Cibler votre pool de nœuds pour qu'il appartienne à un bloc ou à un sous-bloc
Vous pouvez cibler des sous-blocs ou des blocs spécifiques dans votre réservation en mode "Toute capacité".
- Cibler un bloc : chaque pool de nœuds utilise la capacité d'un bloc spécifié. GKE place le pool de nœuds dans un sous-bloc disponible de ce bloc. Vous devez créer autant de pools de nœuds que de sous-blocs dans le bloc que vous souhaitez utiliser.
Cibler un sous-bloc : chaque pool de nœuds est associé à un sous-bloc spécifique et disponible. Lorsque vous utilisez le ciblage par sous-bloc, GKE crée le pool de nœuds si au moins une VM est opérationnelle. Le provisionnement incrémentiel permet de s'assurer que tous les nœuds sont placés dans le sous-bloc spécifié.
Bloquer
Pour récupérer le nom du bloc dans une réservation et le nombre de sous-blocs disponibles dans le bloc, suivez les étapes décrites dans le document Afficher la topologie et l'état des réservations en mode "Toute la capacité" :
Identifiez le nom du bloc en listant tous les blocs de réservation et en copiant la valeur du champ
name:. Cette valeur correspond au nom du bloc ou deBLOCK_NAMEdans ce document.Déterminez le nombre de pools de nœuds à créer en décrivant un bloc de réservation et en identifiant la valeur dans le champ
reservationSubBlockCount. Cette valeur correspond au nombre de sous-blocs disponibles. Par exemple, la valeurreservationSubBlockCount: 4indique que le bloc comporte quatre sous-blocs disponibles et que vous devez créer quatre pools de nœuds distincts.
Définissez le chemin de réservation :
export RESERVATION_PATH="projects/PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/BLOCK_NAME"Remplacez les éléments suivants :
RESERVATION_NAME: nom de votre réservation de TPU.BLOCK_NAME: nom du bloc.
Créez un pool de nœuds pour chaque sous-bloc identifié à l'étape précédente. Par exemple, si le nombre est
4, exécutez cette commande quatre fois. Attribuez un nom unique à chaque pool de nœuds.gcloud container node-pools create NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --node-locations=ZONE \ --machine-type=tpu7x-standard-4t \ --num-nodes=16 \ --placement-policy=WORKLOAD_POLICY_NAME \ --reservation-affinity=specific \ --reservation=${RESERVATION_PATH}Remplacez les éléments suivants :
NODE_POOL_NAME: nom de votre nouveau pool de nœuds.CLUSTER_NAME: nom de votre cluster GKE.WORKLOAD_POLICY_NAME: nom de la règle de charge de travail que vous avez créée.ZONE: zone du pool de nœuds, par exempleus-central1-a.
Sous-bloc
Pour récupérer le nom du bloc et les ID des sous-blocs disponibles, suivez les étapes décrites dans le document Afficher la topologie et l'état des réservations en mode "Toute la capacité" :
Pour identifier le nom du bloc, listez tous les blocs de réservation et copiez la valeur du champ
name:. Cette valeur correspond au nom du bloc ou deBLOCK_NAMEdans ce document.Pour identifier le nom des sous-blocs, listez tous les sous-blocs d'un bloc et copiez la valeur du champ
name:pour chaque entrée sousreservationSubBlocks. Cette valeur correspond au nom du sous-bloc ouSUBBLOCK_NAMEdans ce document.
Définissez le chemin de réservation :
export RESERVATION_PATH="projects/PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/BLOCK_NAME/reservationSubBlocks/SUBBLOCK_NAME"Remplacez les éléments suivants :
RESERVATION_NAME: nom de votre réservation de TPU.BLOCK_NAME: nom du bloc.SUBBLOCK_NAME: nom du sous-bloc.
Créez le pool de nœuds :
gcloud container node-pools create NODE_POOL_NAME \ --project=PROJECT_ID \ --cluster=CLUSTER_NAME \ --node-locations=ZONE \ --machine-type=tpu7x-standard-4t \ --num-nodes=16 \ --placement-policy=WORKLOAD_POLICY_NAME \ --reservation-affinity=specific \ --reservation=${RESERVATION_PATH}Remplacez les éléments suivants :
NODE_POOL_NAME: nom unique du nouveau pool de nœuds, par exemplesub-block-pool-1.PROJECT_ID: ID de votre projet Google Cloud .CLUSTER_NAME: nom de votre cluster GKE.ZONE: zone du pool de nœuds, par exempleus-central2-b.WORKLOAD_POLICY_NAME: nom de la règle de charge de travail que vous avez créée.
À ce stade, les nœuds sont créés, mais leurs liens Inter-Chip Interconnect (ICI) ne sont pas encore actifs. Par conséquent, vous ne pouvez pas exécuter directement de charges de travail sur ces pools de nœuds.
Pour activer tous les liens ICI nécessaires à la formation du slice et permettre la planification des charges de travail, créez un slice dynamique à l'aide de l'une des méthodes suivantes :
- Créez une ressource personnalisée Slice. Au lieu d'utiliser des pods, vous utilisez une ressource personnalisée Slice pour définir la topologie spécifiée, que le contrôleur de tranche active.
- Planifiez des charges de travail GKE avec Kueue et TAS. Kueue gère automatiquement la création et la suppression des ressources personnalisées Slice. Évitez de modifier manuellement les ressources personnalisées Slice créées par Kueue.
Créer une tranche dynamique avec Kueue et TAS
Dans cette section, vous allez planifier des charges de travail GKE avec Kueue et TAS.
Installer le contrôleur de tranche Kueue
Pour installer le contrôleur de tranche Kueue, enregistrez le fichier manifeste suivant sous le nom
slice-controller.yaml:Appliquez le fichier manifeste
slice-controller.yaml:kubectl apply -f slice-controller.yamlPour configurer Kueue pour le slicing dynamique, enregistrez le fichier manifeste suivant sous le nom
dynamic-slice-topology.yaml:Appliquez le fichier manifeste
dynamic-slice-topology.yaml:kubectl apply -f dynamic-slice-topology.yamlDans ce fichier manifeste, vous configurez Kueue pour le fractionnement dynamique en définissant les ressources suivantes :
- Topologie de tranche dynamique Ironwood (TPU7x) (
superslice-topology) : la topologie définit les niveaux que Kueue prend en compte lorsqu'il planifie les charges de travail de découpage dynamique. Voici les différents niveaux :- Libellé
cloud.google.com/gce-topology-block: ce niveau est nécessaire pour comprendre quels sous-blocs appartiennent à quels blocs, car seuls les sous-blocs du même bloc peuvent former une tranche. - Libellé
cloud.google.com/gke-tpu-partition-4x4x4-id: ce niveau représente des sous-blocs Ironwood (TPU7x) individuels (topologie4x4x4). - Libellé
kubernetes.io/hostname: ce niveau est requis pour attribuer des pods à des VM spécifiques et pour observer leurs libellés et leurs taints.
- Libellé
- ResourceFlavor SuperSlice Ironwood (TPU7x) (
superslice-rf) : le ResourceFlavor pour les sous-blocs Ironwood (TPU7x) inclut le libellécloud.google.com/gke-tpu-accelerator: tpu7xpour correspondre aux nœuds avec des machines Ironwood (TPU7x). - SuperSlice AdmissionCheck (
superslice-ac) : ce contrôle d'admission indique à Kueue de ne pas planifier de charge de travail tant que le contrôleur de tranche GKE n'a pas confirmé que la tranche est devenue active. Le contrôle d'admission est d'abord défini, puis ajouté auClusterQueuequi gère les charges de travail de segmentation dynamique. - ClusterQueue (
cq) et LocalQueue (lq) : ces champs gèrent les ressourcesgoogle.com/tpu. La ressource ClusterQueuecqinclut la vérification de l'admissionsuperslice-ac. Le champnominalQuotapourgoogle.com/tpupeut être configuré de deux manières :- Quota spécifique : définissez le champ
nominalQuotapour qu'il corresponde à la capacité existante pour la gestion du partage équitable et des quotas. - Quota illimité : définissez le champ
nominalQuotasur une valeur très élevée, telle que"999999", pour modéliser un quota illimité. Pour se concentrer sur TAS et le découpage dynamique, cette configuration contourne la fonctionnalité de gestion des quotas de Kueue.
- Quota spécifique : définissez le champ
- Topologie de tranche dynamique Ironwood (TPU7x) (
Définir la sélection de l'état de la partition
En plus de l'état et de la disponibilité des nœuds standards, GKE expose l'état spécifique de chaque forme de partition à l'aide du libellé cloud.google.com/gke-tpu-partition-[shape]-state (où [shape] correspond à la forme de l'ID de partition, par exemple 2x2x1, 2x2x2, 2x2x4, 2x4x4 ou 4x4x4). Ce libellé permet à GKE de tenir compte des facteurs qui influencent la formation des tranches, tels que l'état des liens TPU. La configuration du sous-licenciement dynamique (topologies inférieures à 4x4x4) nécessite la version 1.36.0-gke.3712000 de GKE ou une version ultérieure.
Vous pouvez définir la valeur du libellé d'état de la partition comme suit :
HEALTHY: la partition est en bon état et entièrement fonctionnelle.DEGRADED: l'infrastructure de la partition est dans un état dégradé, par exemple en raison de la dégradation du lien OCS. La partition peut toujours former une tranche, mais les performances globales peuvent être inférieures à celles des partitions saines. Cet état ne s'applique qu'à la topologie4x4x4de premier niveau. Les topologies plus petites n'ont pas d'état dégradé.UNHEALTHY: la partition n'est pas saine et ne peut pas former de tranche.UNSET: l'état n'est pas défini en raison de l'échec de l'initialisation du contrôleur de tranche GKE.INCOMPLETE: tous les nœuds de la partition ne sont pas provisionnés.
Le webhook du contrôleur de tranche Kueue valide si une charge de travail inclut une exigence spécifique concernant l'état de la partition. Si aucune préférence n'est indiquée, le webhook injecte une affinité de nœud par défaut.
Voici le comportement à suivre :
- Si un
nodeSelectorou unnodeAffinityciblant le libellécloud.google.com/gke-tpu-partition-[shape]-stateest présent, il reste inchangé. Si aucune configuration de libellé de ce type n'existe, le webhook insère l'affinité de nœud par défaut suivante pour s'assurer que seules les partitions disponibles sont utilisées :
nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: cloud.google.com/gke-tpu-partition-4x4x4-state operator: In values: - "HEALTHY" - "DEGRADED"
La section suivante inclut des exemples dans lesquels le libellé cloud.google.com/gke-tpu-partition-4x4x4-state est configuré pour spécifier les différentes configurations d'état des sous-blocs.
Exécuter des charges de travail de test sur le partitionnement dynamique avec Kueue
Cette section explique comment déployer des charges de travail sur le découpage dynamique avec Kueue et TAS. Il inclut des exemples montrant comment créer une charge de travail de tranche dynamique et une charge de travail composée de plusieurs tranches. Les charges de travail sont envoyées en tant que JobSets.
Exemple 1 : Une seule charge de travail utilise un seul slice dynamique
L'exemple suivant décrit comment créer une charge de travail à l'aide d'une tranche avec une topologie 4x12x16, qui est composée de 12 sous-blocs. Le nombre de pods a été calculé comme suit : (4 * 12 * 16) / 4 puces par nœud = 192 pods.
Enregistrez le manifeste suivant sous le nom
big-super-slice.yaml:Dans ce fichier manifeste, les annotations suivantes indiquent à Kueue les caractéristiques et la topologie de la tranche à configurer :
cloud.google.com/gke-tpu-slice-topology: spécifie"4x12x16"comme topologie de tranche dynamique. Les exigences concernant la topologie d'accélérateurtpu7xincluent les règles suivantes :- Pour le sous-partitionnement dynamique : vous pouvez spécifier des topologies plus petites que
4x4x4, telles que2x2x1,2x2x2,2x2x4ou2x4x4. Ces topologies plus petites nécessitent GKE version 1.36.0-gke.3712000 ou ultérieure. - Pour le superslicing dynamique : vous pouvez spécifier des topologies égales ou supérieures à
4x4x4. Pour la configuration du superslicing dynamique, chaque dimension de la topologie demandée doit être un multiple de quatre (par exemple,4A x 4B x 4C). - La topologie doit être une chaîne tridimensionnelle au format
AxBxC, par exemple4x8x8. - Les dimensions doivent être triées par ordre croissant : A <= B <= C. Par exemple,
4x8x4n'est pas valide et doit être remplacé par4x4x8. - Le produit des dimensions (ABC) ne doit pas dépasser 9 216.
- Les topologies de tranche les plus grandes acceptées peuvent inclure jusqu'à 32 sous-blocs. Par exemple,
8x16x16avec 32 sous-blocs,8x12x20avec 30 sous-blocs ou12x12x12avec 27 sous-blocs sont dans les limites acceptées.
- Pour le sous-partitionnement dynamique : vous pouvez spécifier des topologies plus petites que
cloud.google.com/gke-tpu-accelerator: tpu7x: planifie les pods sur les VM qui exécutent Ironwood (TPU7x).kueue.x-k8s.io/queue-name: attribue le JobSet à une LocalQueue Kueue.- Le webhook injecte l'affinité de nœuds par défaut pour s'assurer que les nœuds
HEALTHYetDEGRADEDsont utilisés.
Appliquez le fichier manifeste
big-super-slice.yaml:kubectl apply -f big-super-slice.yamlUne fois le fichier manifeste appliqué, Kueue crée un
JobSetnommébig-super-slice. Kueue tente ensuite de former une seule tranche dynamique avec une topologie4x12x16. Une fois le slice actif, Kueue accepte la charge de travail et les 192 pods sont planifiés sur les nœuds pour former le slice dynamique qui exécute vos charges de travail.
Exemple 2 : Charge de travail avec plusieurs répliques
L'exemple suivant montre comment créer une charge de travail qui utilise deux tranches dynamiques, chacune composée de quatre sous-blocs ciblant uniquement les nœuds HEALTHY.
Enregistrez le manifeste suivant sous le nom
two-super-slices.yaml:Appliquez le fichier manifeste
two-super-slices.yaml:kubectl apply -f two-super-slices.yaml
Dans ce fichier manifeste, vous définissez le champ replicas sur 2 dans la section replicatedJobs.
Une fois le fichier manifeste appliqué, Kueue tente de former deux tranches distinctes avec une topologie 4x8x8. Kueue crée une tranche dynamique pour chaque réplica défini dans jobset.spec.replicatedJobs[].replicas.
Si n répliques sont spécifiées, Kueue crée n tranches dynamiques pour la charge de travail et attend que toutes les tranches deviennent actives avant d'admettre la charge de travail.
Surveiller le segment
Vous pouvez consulter l'état du slice et surveiller ses métriques avec les métriques système GKE.
Surveiller l'état de la tranche
Pour vérifier l'état de vos tranches dynamiques, exécutez la commande suivante :
kubectl describe slice SLICE_NAME
Remplacez SLICE_NAME par le nom de votre tranche. Le nom du slice est généralement dérivé du nom JobSet et de l'index de réplica. Dans l'exemple 1, une tranche créée par Kueue aurait un nom semblable à default-jobset-big-super-slice-yyyyy-job-jax-0.
Le résultat ressemble à ce qui suit :
Name: test-slice
Namespace:
Labels: <none>
Annotations: <none>
API Version: accelerator.gke.io/v1beta1
Kind: Slice
Metadata:
Creation Timestamp: 2026-02-12T23:44:28Z
Finalizers:
accelerator.gke.io/slice-finalizer
Generation: 1
Resource Version: 1770939905695871008
UID: 6dbbfe14-4486-4462-864d-e078d0ca8b5b
Spec:
Partition Ids:
5eae6a4f59d59cf30a9bf49de618eb2b
Topology: 4x4x4
Type: tpu7x
Status:
Conditions:
Last Transition Time: 2026-02-12T23:45:05Z
Message:
Reason: ACTIVE
Status: True
Type: Ready
Last Transition Time: 2026-02-12T23:45:05Z
Message: NodeLabelingCompleted
Reason: NodeLabelIsAdded
Status: True
Type: NodeLabeled
Events: <none>
Le nom de la tranche respecte les règles suivantes pour assurer la compatibilité avec les conventions d'attribution de noms des ressources Compute Engine sous-jacentes :
- Modèle :
{namespace}-jobset-{jobset.metadata.name}-kueueHash[5-character]-{jobset.spec.replicatedJobs[].name}-sliceIndex. - Longueur : le nom ne comporte pas plus de 49 caractères. L'application de contrôleur ajoute un tiret et un hachage de cluster de huit caractères pour créer des noms de ressources Compute Engine, qui sont limités à 63 caractères.
- Format : le nom correspond à l'expression régulière
^[a-z]([-a-z0-9]*[a-z0-9])?$. Le nom présente les caractéristiques suivantes :- Commence par une lettre minuscule.
- Ne contenir que des lettres minuscules, des chiffres et des traits d'union (-).
- Se termine par une lettre minuscule ou un chiffre (il ne peut pas se terminer par un trait d'union).
Surveiller les métriques du segment
Vous pouvez surveiller les métriques système GKE suivantes qui exposent l'état d'une tranche :
kubernetes.io/accelerator/slice/statekubernetes.io/accelerator/partition/statekubernetes.io/accelerator/slice/deformation_durationskubernetes.io/accelerator/slice/formation_durations
Pour en savoir plus sur les métriques, consultez Métriques système GKE.
Effectuer un nettoyage
Pour éviter des frais inattendus, supprimez vos tranches avant de supprimer les pools de nœuds.
Supprimez le JobSet. Cette action déclenche la suppression des ressources personnalisées Slice associées par Kueue.
kubectl delete jobset JOBSET_NAMERemplacez
JOBSET_NAMEpar le nom de votre JobSet, par exemplebig-super-slice.Supprimez le pool de nœuds TPU :
gcloud container node-pools delete NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --location=LOCATION
(Facultatif) Utiliser le slicing dynamique avec votre propre programmateur
Ce document se concentre sur l'utilisation de Kueue et TAS. Toutefois, vous pouvez également gérer le fractionnement dynamique avec votre propre planificateur personnalisé. Si vous choisissez d'utiliser un autre planificateur, suivez les informations de référence sur la ressource personnalisée Slice.
Étapes suivantes
- En savoir plus sur TPU Cluster Director
- Découvrez comment gérer les événements de maintenance avec les TPU en mode "Toute capacité".