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 proyectoZONE
: La zona Google Cloud en la que se encuentra tu instanciaINSTANCE_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 notebook 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 verificarlo, inspecciona los registros del sistema 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 tu 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 Notebooks Collection Agent 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 deGoogle Cloud o puedes usar SSH para 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 al script y editarlo, 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 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 resuelva *.kernels.googleusercontent.com
ejecutando el siguiente comando:
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:
Replacegcloud storage buckets create gs://BUCKET_NAME
BUCKET_NAME
with a bucket name that meets the bucket naming requirements.Copia los datos del usuario
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.
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 Google Cloud compatible oficialmente. Puedes usar la herramientagcpdiag
para identificar y corregir Google Cloudproblemas del proyecto. Para obtener más información, consulta el proyecto en GitHub.En este runbook degcpdiag
, se investigan las posibles causas por las que una instancia de Vertex AI Workbench se queda atascada en el estado de aprovisionamiento, incluidas las siguientes áreas:- Estado: Verifica el estado actual de la instancia para asegurarse de que esté atascada en el aprovisionamiento y no detenida ni activa.
- Imagen del disco de arranque de la VM de Compute Engine de la instancia:
Verifica si la instancia se creó con un contenedor personalizado, una imagen oficial de
workbench-instances
, imágenes de VM de aprendizaje profundo o imágenes no compatibles que podrían hacer que la instancia se quede atascada 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 interrumpen dependencias que podrían hacer que la instancia se quede atascada en el estado de aprovisionamiento.
- Versión del entorno: Verifica si la instancia usa la versión más reciente del entorno comprobando si se puede actualizar. Las versiones anteriores pueden hacer que la instancia se quede atascada 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 elevado de la CPU, memoria insuficiente o problemas de espacio en disco que puedan interrumpir las operaciones normales.
- Registro del sistema o del puerto en serie de Compute Engine de la instancia: Verifica si la instancia tiene registros del puerto en serie, que se analizan para garantizar que Jupyter se ejecute en el puerto
127.0.0.1:8080
. - Acceso a la terminal y a SSH de Compute Engine de la instancia: Verifica si la VM de Compute Engine de la instancia se está ejecutando para que el usuario pueda acceder a ella a través de SSH y abrir una terminal para verificar que el uso del espacio en "home/jupyter" sea inferior al 85%. Si no queda espacio, es posible que la instancia se quede 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 quede atascada en el estado de aprovisionamiento.
Google Cloud console
- Completa y, luego, copia el siguiente comando.
- Abre la Google Cloud consola y activa Cloud Shell. Abre la consola de Cloud
- Pega el comando copiado.
- Ejecuta el comando
gcpdiag
, que descarga la imagen de Dockergcpdiag
y, luego, realiza verificaciones de diagnóstico. Si corresponde, sigue las instrucciones de salida para corregir las verificaciones que fallaron.
gcpdiag runbook vertex/workbench-instance-stuck-in-provisioning \ --parameter project_id=PROJECT_ID \ --parameter instance_name=INSTANCE_NAME \ --parameter zone=ZONE
Docker
Puedes ejecutar
gcpdiag
con un wrapper que iniciegcpdiag
en un contenedor de Docker. Se debe instalar 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 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 tu instancia de Vertex AI Workbench de destino.
Marcas útiles:
--universe-domain
: Si corresponde, el dominio de Trusted Partner Sovereign Cloud que aloja el recurso--parameter
o-p
: Parámetros del runbook
Para obtener una lista y una descripción de todas las marcas de la herramienta
gcpdiag
, consulta las instrucciones de uso degcpdiag
.Errores de permisos cuando se usan roles de cuentas de servicio con Vertex AI
Problema
Recibes errores generales de permisos cuando usas roles de cuentas de servicio con Vertex AI.
Estos errores pueden aparecer en Cloud Logging, ya sea 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 otorgan diferentes permisos en una cuenta de servicio y no son intercambiables. Para obtener información sobre las diferencias entre los roles deService Account Token Creator
yService Account User
, consulta Roles de cuentas de servicio.Otorgaste permisos a una cuenta de servicio en varios proyectos, lo que no se permite de forma predeterminada.
Solución
Para resolver el problema, prueba una o más de las siguientes opciones:
Determina si se necesita el rol de
Service Account Token Creator
oService Account User
. Para obtener más información, lee la documentación de IAM para los servicios de Vertex AI que usas, así como cualquier otra integración de productos que utilices.Si otorgaste permisos a una cuenta de servicio en varios proyectos, habilita las cuentas de servicio para que se puedan adjuntar en todos los proyectos. Para ello, asegúrate de que
iam.disableCrossProjectServiceAccountUsage
. no se aplica de manera forzosa. Para asegurarte de queiam.disableCrossProjectServiceAccountUsage
no se aplique, ejecuta el siguiente comando:gcloud resource-manager org-policies disable-enforce \ iam.disableCrossProjectServiceAccountUsage \ --project=PROJECT_ID