Solucionar problemas de Vertex AI Workbench

En esta página se describen los pasos para solucionar problemas que pueden resultarte útiles si tienes algún problema mientras usas Vertex AI Workbench.

Consulta también la secció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 procedimientos que pueden resultarle útiles.

Usar SSH para conectarse a una instancia de cuadernos gestionados por usuarios

Usa SSH para conectarte a tu instancia escribiendo el siguiente comando en Cloud Shell o en cualquier entorno en el que esté instalada Google Cloud CLI.

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

Haz los cambios siguientes:

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

También puedes conectarte a tu instancia abriendo la página de detalles de Compute Engine y haciendo clic en el botón SSH.

Volver a registrarse en el servidor proxy inverso

Para volver a registrar la instancia de cuadernos gestionados por el usuario en el servidor proxy inverso interno, puedes detener e iniciar la VM desde la página Cuadernos gestionados por el usuario o usar SSH para conectarte a la instancia de cuadernos gestionados por el usuario e introducir lo siguiente:

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

Verificar el estado del servicio Docker

Para verificar el estado del servicio Docker, puedes usar SSH para conectarte a tu instancia de cuadernos gestionada por el usuario e introducir lo siguiente:

sudo service docker status

Verificar que el agente de proxy inverso se está ejecutando

Para verificar si el agente de proxy inverso del cuaderno está en ejecución, usa SSH para conectarte a tu instancia de cuadernos gestionados por el usuario e introduce 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

Verificar el estado del servicio Jupyter y recoger registros

Para verificar el estado del servicio Jupyter, puedes usar SSH para conectarte a tu instancia de cuadernos gestionados por usuarios e introducir lo siguiente:

sudo service jupyter status

Para recoger los registros del servicio Jupyter, sigue estos pasos:

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

Verificar que la API interna de Jupyter esté activa

La API de Jupyter siempre debe ejecutarse en el puerto 8080. Para comprobarlo, inspecciona los registros del sistema de la instancia para ver si hay 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 tu instancia de cuadernos gestionados por el usuario e introducir lo siguiente:

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

También puedes medir el tiempo que tarda la API en responder si las solicitudes tardan 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 nueva terminal.

Reiniciar el servicio Docker

Para reiniciar el servicio Docker, puedes detener e iniciar la VM desde la página Cuadernos gestionados por el usuario o usar SSH para conectarte a tu instancia de cuadernos gestionados por el usuario e introducir lo siguiente:

sudo service docker restart

Reiniciar el agente de proxy inverso

Para reiniciar el agente de proxy inverso, puedes detener e iniciar la VM desde la página Cuadernos gestionados por el usuario o usar SSH para conectarte a tu instancia de cuadernos gestionados por el usuario e introducir lo siguiente:

sudo docker restart proxy-agent

Reiniciar el servicio de Jupyter

Para reiniciar el servicio Jupyter, puedes detener e iniciar la VM desde la página Cuadernos gestionados por el usuario o usar SSH para conectarte a tu instancia de cuadernos gestionados por el usuario e introducir lo siguiente:

sudo service jupyter restart

Reiniciar el agente de recogida de cuadernos

El servicio del agente de recogida de cuadernos 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 recogida de cuadernos, puedes detener e iniciar la VM desde la Google Cloud consola o usar SSH para conectarte a tu instancia de Vertex AI Workbench e introducir lo siguiente:

sudo systemctl stop notebooks-collection-agent.service

seguido de:

sudo systemctl start notebooks-collection-agent.service

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

Modificar la secuencia de comandos del agente de colección de cuadernos

Para acceder al script y editarlo, abre una terminal en nuestra instancia o usa SSH para conectarte a tu instancia de Vertex AI Workbench e introduce lo siguiente:

nano /opt/deeplearning/bin/notebooks_collection_agent.py

Cuando hayas editado el archivo, guárdalo.

Después, debes reiniciar el servicio del agente de la colección Notebooks.

Verifica que la instancia pueda resolver los dominios DNS necesarios

Para verificar que la instancia puede resolver los dominios DNS necesarios, puedes usar SSH para conectarte a tu instancia de cuaderno gestionada por el usuario e introducir lo siguiente:

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

También puedes hacerlo de esta otra forma, si lo prefieres:

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 nueva terminal.

Hacer una copia de los datos de usuario en una instancia

Para almacenar una copia de los datos de usuario de una instancia en Cloud Storage, sigue estos pasos.

Crear un segmento de Cloud Storage (opcional)

En el mismo proyecto en el que se encuentra tu instancia, crea un segmento de Cloud Storage en el que puedas almacenar tus datos de usuario. Si ya tienes un segmento de Cloud Storage, sáltate 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.

    Copiar los datos de usuario

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

    2. Usa la CLI de gcloud para copiar tus datos de usuario en un segmento de Cloud Storage. El siguiente comando de ejemplo copia todos los archivos del directorio /home/jupyter/ de tu instancia en un directorio de un segmento de Cloud Storage.

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

      Haz los cambios siguientes:

      • BUCKET_NAME: el nombre de tu segmento de Cloud Storage
      • PATH: la ruta al directorio en el que quieres copiar los archivos. Por ejemplo: /copy/jupyter/

    Investigar una instancia que se ha quedado bloqueada en el aprovisionamiento con gcpdiag

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

    Este gcpdiag manual de procedimientos investiga las posibles causas por las que una instancia de Vertex AI Workbench se queda bloqueada en el estado de aprovisionamiento, incluidas las siguientes áreas:
    • Estado: comprueba el estado actual de la instancia para asegurarse de que se ha quedado bloqueada en el aprovisionamiento y no está detenida ni activa.
    • Imagen del disco de arranque de la VM de Compute Engine de la instancia: comprueba si la instancia se ha creado con un contenedor personalizado, una imagen oficial de workbench-instances, imágenes de máquina virtual de aprendizaje profundo o imágenes no admitidas que pueden provocar que la instancia se quede bloqueada en el estado de aprovisionamiento.
    • Secuencias de comandos personalizadas: comprueba si la instancia usa secuencias de comandos de inicio o posteriores al inicio personalizadas que cambian el puerto predeterminado de Jupyter o rompen dependencias que pueden provocar que la instancia se quede bloqueada en el estado de aprovisionamiento.
    • Versión del entorno: comprueba si la instancia usa la versión más reciente del entorno comprobando si se puede actualizar. Las versiones anteriores pueden provocar que la instancia se quede bloqueada en el estado de aprovisionamiento.
    • Rendimiento de la VM de Compute Engine de la instancia: comprueba el rendimiento actual de la VM para asegurarse de que no se vea afectado por un uso elevado de la CPU, una memoria insuficiente o problemas de espacio en disco que puedan interrumpir las operaciones normales.
    • Puerto serie de Compute Engine de la instancia o registro del sistema: comprueba si la instancia tiene registros del puerto serie, que se analizan para asegurarse de que Jupyter se ejecuta en el puerto 127.0.0.1:8080.
    • Acceso a la terminal y a SSH de Compute Engine de la instancia: comprueba si la VM de Compute Engine de la instancia está en ejecución para que el usuario pueda acceder a SSH y abrir una terminal para verificar que el uso del espacio en "home/jupyter" es inferior al 85%. Si no queda espacio, es posible que la instancia se quede atascada en el estado de aprovisionamiento.
    • IP externa desactivada: comprueba si el acceso a la IP externa está desactivado. Una configuración de red incorrecta puede provocar que la instancia se quede bloqueada en el estado de aprovisionamiento.

    Docker

    Puedes ejecutar gcpdiag mediante un envoltorio que inicie gcpdiag en un contenedor Docker. Debes tener instalado 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 de este runbook.

    Haz los cambios siguientes:

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

    Marcas útiles:

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

    Errores de permisos al usar roles de cuenta de servicio con Vertex AI

    Problema

    Se producen errores generales de permisos al usar roles de cuenta de servicio con Vertex AI.

    Estos errores pueden aparecer en Cloud Logging en los registros de componentes del producto o en los registros de auditoría. También pueden aparecer en cualquier combinación de los proyectos afectados.

    Estos problemas pueden deberse a uno o ambos de los siguientes motivos:

    • Uso del rol Service Account Token Creator cuando se debería haber usado el rol Service Account User, o viceversa. Estos roles conceden diferentes permisos en una cuenta de servicio y no son intercambiables. Para obtener información sobre las diferencias entre los roles Service Account Token Creator y Service Account User, consulta Roles de cuenta de servicio.

    • Has concedido permisos a una cuenta de servicio en varios proyectos, lo que no está permitido de forma predeterminada.

    Solución

    Para solucionar el problema, prueba una o varias de las siguientes opciones:

    • Determina si se necesita el rol Service Account Token Creator o Service Account User. Para obtener más información, consulta la documentación de gestión de identidades y accesos de los servicios de Vertex AI que estés usando, así como cualquier otra integración de producto que estés usando.

    • Si has concedido permisos a una cuenta de servicio en varios proyectos, habilita la opción para que las cuentas de servicio se puedan adjuntar en varios proyectos. Para ello, asegúrate de que iam.disableCrossProjectServiceAccountUsage. no se aplica. Para asegurarte de que iam.disableCrossProjectServiceAccountUsage no se aplica, ejecuta el siguiente comando:

      gcloud resource-manager org-policies disable-enforce \
        iam.disableCrossProjectServiceAccountUsage \
        --project=PROJECT_ID