Résoudre les problèmes liés à Vertex AI Workbench

Cette page décrit les étapes de dépannage qui vous aideront si vous rencontrez des problèmes lors de l'utilisation de Vertex AI Workbench.

Consultez également la page Résoudre les problèmes liés à Vertex AI pour obtenir de l'aide sur l'utilisation d'autres composants de Vertex AI.

Cliquez sur l'une des catégories ci-après pour filtrer le contenu de cette page :

Procédures utiles

Cette section décrit des procédures qui pourraient vous être utiles.

Utiliser SSH pour se connecter à une instance de notebooks gérés par l'utilisateur

Utilisez ssh pour vous connecter à votre instance en saisissant la commande suivante dans Cloud Shell ou dans tout environnement dans lequel Google Cloud CLI est installé.

gcloud compute ssh --project PROJECT_ID \
  --zone ZONE \
  INSTANCE_NAME -- -L 8080:localhost:8080

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre projet
  • ZONE : zone Google Cloud dans laquelle se trouve votre instance.
  • INSTANCE_NAME : nom de l'instance

Vous pouvez également vous connecter à votre instance en ouvrant la page d'informations Compute Engine de votre instance, puis en cliquant sur le bouton SSH.

.

Se réenregistrer auprès du serveur de proxy d'inversion

Pour réenregistrer l'instance de notebooks gérés par l'utilisateur auprès du serveur de proxy d'inversion interne, vous pouvez arrêter et démarrer la VM à partir de la page Notebooks gérés par l'utilisateur, ou utiliser SSH pour vous connecter à l'instance de notebooks gérés par l'utilisateur et saisir la commande suivante :

cd /opt/deeplearning/bin
sudo ./attempt-register-vm-on-proxy.sh

Vérifier l'état du service Docker

Pour vérifier l'état du service Docker, vous pouvez utiliser ssh pour vous connecter à votre instance de notebooks gérés par l'utilisateur, puis saisir la commande suivante :

sudo service docker status

Vérifier que l'agent de proxy inverse est en cours d'exécution

Pour vérifier si l'agent de proxy inverse du notebook est en cours d'exécution, utilisez ssh pour vous connecter à votre instance de notebooks gérés par l'utilisateur, puis saisissez la commande suivante :

# Confirm Inverting Proxy agent Docker container is running (proxy-agent)
sudo docker ps

# Verify State.Status is running and State.Running is true.
sudo docker inspect proxy-agent

# Grab logs
sudo docker logs proxy-agent

Vérifier l'état du service Jupyter et collecter les journaux

Pour vérifier l'état du service Jupyter, vous pouvez utiliser ssh pour vous connecter à votre instance de notebooks gérés par l'utilisateur, puis saisir la commande suivante :

sudo service jupyter status

Pour collecter les journaux du service Jupyter, procédez comme suit :

sudo journalctl -u jupyter.service --no-pager

Vérifier que l'API interne Jupyter est active

L'API Jupyter doit toujours s'exécuter sur le port 8080. Pour vérifier cela, inspectez les syslogs de l'instance pour trouver une entrée semblable à la suivante :

Jupyter Server ... running at:
http://localhost:8080

Pour vérifier que l'API interne Jupyter est active, vous pouvez utiliser SSH pour vous connecter à votre instance de notebooks gérés par l'utilisateur, puis saisir la commande suivante :

curl http://127.0.0.1:8080/api/kernelspecs

Vous pouvez également mesurer le temps nécessaire à l'API pour répondre en cas de requêtes trop longues :

time curl -V http://127.0.0.1:8080/api/status
time curl -V http://127.0.0.1:8080/api/kernels
time curl -V http://127.0.0.1:8080/api/connections

Pour exécuter ces commandes dans votre instance Vertex AI Workbench, ouvrez JupyterLab et créez un terminal.

Redémarrer le service Docker

Pour redémarrer le service Docker, vous pouvez arrêter et démarrer la VM à partir de la page Notebooks gérés par l'utilisateur, ou utiliser ssh pour vous connecter à votre instance de notebooks gérés par l'utilisateur, puis saisir la commande suivante :

sudo service docker restart

Redémarrer l'agent de proxy inverse

Pour redémarrer l'agent de proxy inverse, vous pouvez arrêter et démarrer la VM à partir de la page Notebooks gérés par l'utilisateur ou utiliser ssh pour vous connecter à votre instance de notebooks gérés par l'utilisateur, puis saisir la commande suivante :

sudo docker restart proxy-agent

Redémarrer le service Jupyter

Pour redémarrer le service Jupyter, vous pouvez arrêter et démarrer la VM à partir de la page Notebooks gérés par l'utilisateur ou utiliser ssh pour vous connecter à votre instance de notebooks gérés par l'utilisateur, puis saisir la commande suivante :

sudo service jupyter restart

Redémarrer l'agent de collecte de notebooks

Le service d'agent de collecte de notebooks exécute un processus Python en arrière-plan qui vérifie l'état des services principaux de l'instance Vertex AI Workbench.

Pour redémarrer le service d'agent de collecte de notebooks, vous pouvez arrêter et démarrer la VM à partir de la console Google Cloud ou utiliser SSH pour vous connecter à votre instance Vertex AI Workbench, puis saisir :

sudo systemctl stop notebooks-collection-agent.service

suivi de :

sudo systemctl start notebooks-collection-agent.service

Pour exécuter ces commandes dans votre instance Vertex AI Workbench, ouvrez JupyterLab et créez un terminal.

Modifier le script de l'agent de collecte de notebooks

Pour accéder au script et le modifier, ouvrez un terminal dans notre instance ou utilisez SSH pour vous connecter à votre instance Vertex AI Workbench, puis saisissez :

nano /opt/deeplearning/bin/notebooks_collection_agent.py

N'oubliez pas d'enregistrer le fichier après l'avoir modifié.

Vous devez ensuite redémarrer le service d'agent de collecte de notebooks.

Vérifier que l'instance peut résoudre les domaines DNS requis

Pour vérifier que l'instance peut résoudre les domaines DNS requis, vous pouvez utiliser SSH pour vous connecter à votre instance de notebooks gérés par l'utilisateur, puis saisir :

host notebooks.googleapis.com
host *.notebooks.cloud.google.com
host *.notebooks.googleusercontent.com
host *.kernels.googleusercontent.com

ou :

curl --silent --output /dev/null "https://notebooks.cloud.google.com"; echo $?

Si Dataproc est activé sur l'instance, vous pouvez vérifier qu'elle résout *.kernels.googleusercontent.com en exécutant la commande suivante :

curl --verbose -H "Authorization: Bearer $(gcloud auth print-access-token)" https://${PROJECT_NUMBER}-dot-${REGION}.kernels.googleusercontent.com/api/kernelspecs | jq .

Pour exécuter ces commandes dans votre instance Vertex AI Workbench, ouvrez JupyterLab et créez un terminal.

Créer une copie des données utilisateur sur une instance

Pour stocker une copie des données utilisateur d'une instance dans Cloud Storage, suivez la procédure suivante.

Créer un bucket Cloud Storage (facultatif)

Dans le même projet que celui où se trouve votre instance, créez un bucket Cloud Storage dans lequel vous pouvez stocker vos données utilisateur. Si vous disposez déjà d'un bucket Cloud Storage, ignorez cette étape.

  • Create a Cloud Storage bucket:
    gcloud storage buckets create gs://BUCKET_NAME
    Replace BUCKET_NAME with a bucket name that meets the bucket naming requirements.

Copier vos données utilisateur

  1. Dans l'interface JupyterLab de votre instance, sélectionnez Fichier > Nouveau > Terminal pour ouvrir une fenêtre de terminal. Pour les instances de notebooks gérés par l'utilisateur, vous pouvez vous connecter au terminal de votre instance à l'aide de SSH.

  2. Utilisez gcloud CLI pour copier vos données utilisateur dans un bucket Cloud Storage. L'exemple de commande suivant copie tous les fichiers du répertoire /home/jupyter/ de votre instance dans un répertoire situé dans un bucket Cloud Storage.

    gcloud storage cp /home/jupyter/* gs://BUCKET_NAMEPATH --recursive
    

    Remplacez les éléments suivants :

    • BUCKET_NAME : nom du bucket Cloud Storage.
    • PATH : chemin d'accès au répertoire dans lequel vous souhaitez copier vos fichiers, par exemple : /copy/jupyter/

Examiner une instance bloquée lors du provisionnement à l'aide de gcpdiag

gcpdiag est un outil Open Source. Il ne s'agit pas d'un produit Google Cloud faisant l'objet d'une assistance officielle. Vous pouvez utiliser l'outil gcpdiag pour vous aider à identifier et à résoudre les problèmes liés au projet Google Cloud. Pour plus d'informations, consultez le projet gcpdiag sur GitHub.

Ce runbook gcpdiag examine les causes potentielles pour lesquelles une instance Vertex AI Workbench peut rester bloquée dans l'état de provisionnement, y compris les domaines suivants :
  • État : vérifie l'état actuel de l'instance pour s'assurer qu'elle est bloquée au niveau du provisionnement et qu'elle n'est pas arrêtée ni active.
  • Image du disque de démarrage de la VM Compute Engine de l'instance : vérifie si l'instance a été créée avec un conteneur personnalisé, une image workbench-instances officielle, des images Deep Learning VM Image ou des images non compatibles qui pourraient empêcher l'instance de se provisionner.
  • Scripts personnalisés : vérifie si l'instance utilise des scripts de démarrage ou post-démarrage personnalisés qui modifient le port Jupyter par défaut ou rompent les dépendances qui pourraient empêcher l'instance de se provisionner.
  • Version de l'environnement : vérifie si l'instance utilise la dernière version de l'environnement en vérifiant sa possibilité de mise à niveau. Les versions antérieures peuvent entraîner un blocage de l'instance à l'état de provisionnement.
  • Performances de la VM Compute Engine de l'instance : vérifie les performances actuelles de la VM pour s'assurer qu'elle n'est pas affectée par une utilisation élevée du processeur, une mémoire insuffisante ou des problèmes d'espace disque qui pourraient perturber les opérations normales.
  • Journalisation du port série ou du système de l'instance Compute Engine : vérifie si l'instance dispose de journaux de port série, qui sont analysés pour s'assurer que Jupyter s'exécute sur le port 127.0.0.1:8080.
  • Accès SSH et terminal Compute Engine de l'instance : vérifie si la VM Compute Engine de l'instance est en cours d'exécution afin que l'utilisateur puisse utiliser SSH et ouvrir un terminal pour vérifier que l'espace utilisé dans "home/jupyter" est inférieur à 85 %. Si aucun espace n'est disponible, l'instance peut rester bloquée à l'état de provisionnement.
  • Adresse IP externe désactivée : vérifie si l'accès à l'adresse IP externe est désactivé. Une configuration réseau incorrecte peut empêcher l'instance de provisionner.

console Google Cloud

  1. Terminez l'exécution, puis copiez la commande suivante.
  2. gcpdiag runbook vertex/workbench-instance-stuck-in-provisioning \
        --project=PROJECT_ID \
        --parameter instance_name=INSTANCE_NAME \
        --parameter zone=ZONE
  3. Ouvrez la console Google Cloud et activez Cloud Shell.
  4. Ouvrir la console Cloud
  5. Collez la commande copiée.
  6. Exécutez la commande gcpdiag, qui télécharge l'image Docker gcpdiag, puis effectue des vérifications de diagnostic. Le cas échéant, suivez les instructions de sortie pour corriger les échecs de vérification.

Docker

Vous pouvez exécuter gcpdiag à l'aide d'un wrapper qui démarre gcpdiag dans un conteneur Docker. Docker ou Podman doivent être installés.

  1. Copiez et exécutez la commande suivante sur votre station de travail locale :
    curl https://gcpdiag.dev/gcpdiag.sh >gcpdiag && chmod +x gcpdiag
  2. Exécutez la commande gcpdiag.
    ./gcpdiag runbook vertex/workbench-instance-stuck-in-provisioning \
        --project=PROJECT_ID \
        --parameter instance_name=INSTANCE_NAME \
        --parameter zone=ZONE

Affichez les paramètres disponibles pour ce runbook.

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet contenant la ressource.
  • INSTANCE_NAME : nom de l'instance Vertex AI Workbench cible dans votre projet.
  • ZONE : zone dans laquelle se trouve votre instance Vertex AI Workbench cible.

Options utiles :

Pour obtenir la liste et la description de toutes les options de l'outil gcpdiag, consultez les instructions d'utilisation de gcpdiag.