Solucionar problemas de Vertex AI Workbench

En esta página, se describen los pasos para solucionar problemas que pueden servirte si tienes dificultades cuando usas Vertex AI Workbench.

Consulta también Solución de problemas de Vertex AI para obtener ayuda sobre cómo usar otros componentes de Vertex AI.

Para filtrar el contenido de esta página, haz clic en un tema:

Procedimientos útiles

En esta sección, se describen los procedimientos que pueden resultarte útiles.

Usa SSH para conectarte a tu instancia de notebooks administrados por el usuario.

Usa ssh a fin de conectarte a tu instancia heredada; para ello, escribe el siguiente comando en Cloud Shell o en cualquier entorno en el que esté instalada la Google Cloud CLI.

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

Reemplaza lo siguiente:

  • PROJECT_ID: el ID de tu proyecto
  • ZONE: la zona de Google Cloud en la que se encuentra tu instancia.
  • INSTANCE_NAME: el nombre de tu instancia.

También puedes conectarte a tu instancia si abres su página de detalles de Compute Engine y, luego, haces clic en el botón SSH.

Vuelve a registrarte con el servidor proxy de inversión.

Para volver a registrar la instancia de notebook administrado por el usuario con el servidor de proxy de inversión interno, puedes detener y volver a iniciar la VM desde la página de notebooks administrados por el usuario o puedes usar SSH para conectarte a tu instancia de notebook administrado por el usuario y, luego, ingresar lo siguiente:

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

Verifica el estado del servicio de Docker

Si deseas verificar el estado del servicio de Docker, puedes usar SSH para conectarte a tu instancia de notebook administrado por el usuario y, luego, ingresar lo siguiente:

sudo service docker status

Verifica que el agente de proxy de inversión esté en ejecución

Para verificar si el agente del proxy de inversión del notebook está en ejecución, usa ssh para conectarte a la instancia de notebook administrado por el usuario y, luego, ingresa lo siguiente:

# 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

Verifica el estado del servicio de Jupyter y recopila registros

A fin de verificar el estado del servicio de Jupyter, puedes usar SSH para conectarte a tu instancia de notebook administrado por el usuario y, luego, ingresar lo siguiente:

sudo service jupyter status

Para recopilar registros del servicio de Jupyter, ingresa lo siguiente:

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

Verifica que la API interna de Jupyter esté activa

La API de Jupyter siempre debe ejecutarse en el puerto 8080. Para verificar esto, inspecciona los syslogs de la instancia en busca de una entrada similar a la siguiente:

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

Para verificar que la API interna de Jupyter esté activa, también puedes usar ssh para conectarte a la instancia de notebook administrado por el usuario y, luego, ingresar lo siguiente:

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

También puedes medir el tiempo que tarda la API en responder en caso de que las solicitudes tarden demasiado:

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

Para ejecutar estos comandos en tu instancia de Vertex AI Workbench, abre JupyterLab y crea una terminal nueva.

Reinicia el servicio de Docker

Para reiniciar el servicio de Docker, puedes detener y volver a iniciar la VM en la página de notebooks administrados por el usuario o puedes usar SSH a fin de conectarte a la instancia de notebooks administrados por el usuario y, luego, ingresar lo siguiente:

sudo service docker restart

Reinicia el agente del proxy de inversión

Para reiniciar el agente de proxy de inversión, puedes detener y volver a iniciar la VM en la página de notebooks administrados por el usuario o puedes usar SSH a fin de conectarte a la instancia de notebooks administrados por el usuario y, luego, ingresar lo siguiente:

sudo docker restart proxy-agent

Reinicia el servicio de Jupyter

Para reiniciar el servicio de Jupyter, puedes detener y volver a iniciar la VM en la página de notebooks administrados por el usuario o puedes usar SSH a fin de conectarte a tu instancia de notebooks administrados por el usuario y, luego, ingresar lo siguiente:

sudo service jupyter restart

Reinicia el agente de recopilación de Notebooks

El servicio del agente de recopilación de notebooks ejecuta un proceso de Python en segundo plano que verifica el estado de los servicios principales de la instancia de Vertex AI Workbench.

Para reiniciar el servicio del agente de recopilación de notebooks, puedes detener y volver a iniciar la VM desde la consola de Google Cloud o puedes usar SSH a fin de conectarte a tu instancia de Vertex AI Workbench y, luego, ingresar lo siguiente:

sudo systemctl stop notebooks-collection-agent.service

seguido de lo siguiente:

sudo systemctl start notebooks-collection-agent.service

Para ejecutar estos comandos en tu instancia de Vertex AI Workbench, abre JupyterLab y crea una terminal nueva.

Modifica la secuencia de comandos del agente de recopilación de notebooks

Para acceder a la secuencia de comandos y editarla, abre una terminal en nuestra instancia o usa SSH para conectarte a tu instancia de Vertex AI Workbench y, luego, ingresa lo siguiente:

nano /opt/deeplearning/bin/notebooks_collection_agent.py

Después de editar el archivo, recuerda guardarlo.

Luego, debes reiniciar el servicio del agente de recopilación de notebooks.

Verifica que la instancia pueda resolver los dominios DNS requeridos

Para verificar que la instancia pueda resolver los dominios de DNS requeridos, puedes usar SSH para conectarte a tu instancia de notebooks administrados por el usuario y, luego, ingresar lo siguiente:

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

o:

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

Si la instancia tiene habilitado Dataproc, puedes verificar que la instancia resuelve *.kernels.googleusercontent.com ejecutando lo siguiente:

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

Para ejecutar estos comandos en tu instancia de Vertex AI Workbench, abre JupyterLab y crea una terminal nueva.

Realiza una copia de los datos del usuario en una instancia

Para almacenar una copia de los datos del usuario de la instancia en Cloud Storage, completa los siguientes pasos.

Crea un bucket de Cloud Storage (opcional)

En el mismo proyecto en el que se encuentra la instancia, crea un bucket de Cloud Storage en el que puedas almacenar tus datos del usuario. Si ya tienes un bucket de Cloud Storage, omite este paso.

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

Copia los datos del usuario

  1. En la interfaz de JupyterLab de tu instancia, selecciona Archivo > Nuevo > Terminal para abrir una ventana de la terminal. En el caso de las instancias de notebooks administrados por el usuario, puedes conectarte a la terminal de tu instancia mediante SSH.

  2. Usa gcloud CLI para copiar tus datos del usuario en un bucket de Cloud Storage. Con el siguiente comando de ejemplo, se copian todos los archivos del directorio /home/jupyter/ de la instancia a un directorio en un bucket de Cloud Storage.

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

    Reemplaza lo siguiente:

    • BUCKET_NAME: el nombre de tu bucket de Cloud Storage.
    • PATH: La ruta de acceso al directorio en el que deseas copiar los archivos, por ejemplo: /copy/jupyter/.

Investiga una instancia atascada en el aprovisionamiento con gcpdiag

gcpdiag es una herramienta de código abierto. No es un producto de Google Cloud compatible oficialmente. Puedes usar la herramienta gcpdiag para identificar y corregir problemas del proyecto de Google Cloud. Para obtener más información, consulta el proyecto en GitHub.

En este runbook de gcpdiag, se investigan las posibles causas de que una instancia de Vertex AI Workbench se bloquee en el estado de aprovisionamiento, incluidas las siguientes áreas:
  • Estado: Verifica el estado actual de la instancia para asegurarse de que esté detenida en el aprovisionamiento y no esté detenida o activa.
  • Imagen de disco de arranque de la VM de Compute Engine de la instancia: Verifica si la instancia se creó con un contenedor personalizado, una imagen workbench-instances oficial, imágenes de VM de Deep Learning o imágenes no admitidas que podrían hacer que la instancia se bloquee en el estado de aprovisionamiento.
  • Secuencias de comandos personalizadas: Verifica si la instancia usa secuencias de comandos de inicio o posteriores al inicio personalizadas que cambian el puerto predeterminado de Jupyter o que rompen dependencias que podrían hacer que la instancia se bloquee en el estado de aprovisionamiento.
  • Versión del entorno: Verifica si la instancia usa la versión más reciente del entorno comprobando su capacidad de actualización. Las versiones anteriores pueden hacer que la instancia se bloquee en el estado de aprovisionamiento.
  • Rendimiento de la VM de Compute Engine de la instancia: Verifica el rendimiento actual de la VM para garantizar que no se vea afectado por un uso alto de la CPU, memoria insuficiente o problemas de espacio en el disco que podrían interrumpir las operaciones normales.
  • Registro del sistema o puerto en serie de Compute Engine de la instancia: Comprueba si la instancia tiene registros de puertos en serie, que se analizan para garantizar que Jupyter se ejecute en el puerto 127.0.0.1:8080.
  • Acceso a SSH y a la terminal de Compute Engine de la instancia: Verifica si la VM de Compute Engine de la instancia se está ejecutando para que el usuario pueda usar SSH y abrir una terminal para verificar que el uso de espacio en "home/jupyter" sea inferior al 85%. Si no queda espacio, es posible que la instancia permanezca atascada en el estado de aprovisionamiento.
  • IP externa desactivada: Verifica si el acceso a la IP externa está desactivado. Una configuración de red incorrecta puede hacer que la instancia se bloquee en el estado de aprovisionamiento.

Consola de Google Cloud

  1. Completa y, luego, copia el siguiente comando.
  2. gcpdiag runbook vertex/workbench-instance-stuck-in-provisioning \
        --parameter project_id=PROJECT_ID \
        --parameter instance_name=INSTANCE_NAME \
        --parameter zone=ZONE
  3. Abre la consola de Google Cloud y activa Cloud Shell.
  4. Abre la consola de Cloud
  5. Pega el comando copiado.
  6. Ejecuta el comando gcpdiag, que descarga la imagen de Docker gcpdiag y, luego, realiza verificaciones de diagnóstico. Si corresponde, sigue las instrucciones de salida para corregir las verificaciones que fallaron.

Docker

Puedes ejecutar gcpdiag con un wrapper que inicie gcpdiag en un contenedor de Docker. Se debe instalar Docker o Podman.

  1. Copia y ejecuta el siguiente comando en tu estación de trabajo local.
    curl https://gcpdiag.dev/gcpdiag.sh >gcpdiag && chmod +x gcpdiag
  2. Ejecuta el comando gcpdiag.
    ./gcpdiag runbook vertex/workbench-instance-stuck-in-provisioning \
        --parameter project_id=PROJECT_ID \
        --parameter instance_name=INSTANCE_NAME \
        --parameter zone=ZONE

Consulta los parámetros disponibles para este runbook.

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto que contiene el recurso.
  • INSTANCE_NAME: Es el nombre de la instancia de Vertex AI Workbench de destino dentro de tu proyecto.
  • ZONE: Es la zona en la que se encuentra la instancia de Vertex AI Workbench objetivo.

Marcas útiles:

Para obtener una lista y una descripción de todas las marcas de la herramienta gcpdiag, consulta las instrucciones de uso de gcpdiag.