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 proyectoZONE
: la zona en la que se encuentra tu instancia Google CloudINSTANCE_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:
Replacegcloud storage buckets create gs://BUCKET_NAME
BUCKET_NAME
with a bucket name that meets the bucket naming requirements.Copiar los datos de usuario
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.
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 StoragePATH
: 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 lagcpdiag
herramienta para identificar y solucionar Google Cloudproblemas de proyectos. Para obtener más información, consulta el proyecto gcpdiag en GitHub.Estegcpdiag
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 iniciegcpdiag
en un contenedor Docker. Debes tener instalado Docker o Podman.- Copia y ejecuta el siguiente comando en tu estación de trabajo local.
curl https://gcpdiag.dev/gcpdiag.sh >gcpdiag && chmod +x gcpdiag
- 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:
--universe-domain
: Si procede, el dominio Trusted Partner Sovereign Cloud que aloja el recurso--parameter
o-p
: parámetros de runbook
Para ver una lista y una descripción de todas las marcas de la herramienta
gcpdiag
, consulta lasgcpdiag
instrucciones 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 rolService 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 rolesService Account Token Creator
yService 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
oService 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 queiam.disableCrossProjectServiceAccountUsage
no se aplica, ejecuta el siguiente comando:gcloud resource-manager org-policies disable-enforce \ iam.disableCrossProjectServiceAccountUsage \ --project=PROJECT_ID