Cloud Workstations gestiona los Google Cloud recursos, como las VMs de Compute Engine y los discos persistentes (PDs), para que tengas más visibilidad y control sobre los recursos de tus proyectos. Por ejemplo, puedes configurar políticas de instantáneas de disco programadas que apliquen políticas de copia de seguridad a todos los discos persistentes de las estaciones de trabajo. Del mismo modo, tener VMs en tu proyecto te permite acceder y gestionar recursos de tu red de VPC sin problemas.
En el siguiente diagrama se muestra la arquitectura de Cloud Workstations.
Clúster de estaciones de trabajo
Un clúster de estaciones de trabajo contiene y gestiona una colección de estaciones de trabajo en una sola región de nube y una red de VPC de tu proyecto. Cada clúster de estaciones de trabajo incluye dos componentes gestionados porGoogle Cloud: un controlador y una pasarela.
Controlador: gestiona el ciclo de vida de las instancias de VM y otros recursos de la estación de trabajo de tu proyecto.
Los controladores usan la API de Compute Engine para gestionar el ciclo de vida de los recursos y utilizan Private Service Connect para enrutar el tráfico a las VMs de las estaciones de trabajo.
Gateway: recibe el tráfico de los clientes que se dirigen a determinadas estaciones de trabajo y lo reenvía a la instancia de VM adecuada. Cada clúster de estaciones de trabajo tiene un nombre de dominio único y se puede acceder a cada estación de trabajo a través de un subdominio del dominio del clúster de estaciones de trabajo. Por ejemplo,
$WORKSTATION_ID.$CLUSTER_ID.cloudworkstations.dev
.
Otras características de los clústeres de estaciones de trabajo son las siguientes:
Los administradores y los equipos de la plataforma crean clústeres de estaciones de trabajo, que definen un grupo de estaciones de trabajo de una región concreta y la red VPC a la que están conectadas.
Los clústeres de estaciones de trabajo no están relacionados con los clústeres de Google Kubernetes Engine (GKE).
Cada clúster de estaciones de trabajo tiene un controlador dedicado que está conectado a una VPC en la que residen las estaciones de trabajo con Private Service Connect (y esto no afecta a los límites de emparejamiento de VPC). Este controlador gestiona los recursos de las estaciones de trabajo durante todo su ciclo de vida y proporciona acceso de salida y entrada de red a las estaciones de trabajo a través de una pasarela de clúster pública.
Cada región de nube requiere al menos un clúster de estaciones de trabajo.
Si es necesario, también puedes habilitar una puerta de enlace privada para que solo los endpoints de tu red privada tengan acceso a Cloud Workstations.
Red VPC
Cuando creas un clúster de estaciones de trabajo, especificas un proyecto y una red VPC para alojar los recursos. Cloud Workstations aprovisiona los siguientes recursos en tu proyecto:
Private Service Connect: establece una conexión entre el controlador de Cloud Workstations y tu VPC, lo que permite crear recursos en tu proyecto.
Instancia de VM: se crea una VM de Compute Engine de forma dinámica en tu proyecto y VPC después de iniciar una estación de trabajo. Esta máquina virtual se elimina automáticamente al final de una sesión de usuario o tras un tiempo de espera de sesión configurable.
Puerta de enlace de la VM: extrae el tráfico del cliente de la puerta de enlace del clúster de estaciones de trabajo, lo autentica y autoriza, y lo reenvía al contenedor.
Contenedor: define las herramientas preinstaladas en una estación de trabajo, como el IDE o el editor de código, y cualquier otro programa o ajuste especificado en la configuración de la estación de trabajo.
Cloud Workstations proporciona varias imágenes base preconfiguradas con IDEs y herramientas de lenguaje populares. Además, los administradores y los equipos de la plataforma pueden personalizar sus entornos creando y especificando imágenes de contenedor personalizadas que contengan las herramientas necesarias para satisfacer las necesidades de sus desarrolladores. Estas imágenes de contenedor pueden ampliar la imagen base de Cloud Workstations o pueden ser imágenes de contenedor de Linux nuevas y personalizadas creadas por el equipo de la plataforma.
Disco persistente: un disco persistente conectado a la VM de la estación de trabajo y montado en la carpeta
/home
, que permite almacenar datos y archivos después de que finalice la sesión.
Ciclo de vida de los recursos
Cloud Workstations gestiona las máquinas virtuales, las imágenes de contenedor y los discos persistentes para usarlos como entorno de ejecución de cada estación de trabajo. Configura las especificaciones de estos recursos en la configuración de tu estación de trabajo.
Cuando se inicia una estación de trabajo, Cloud Workstations hace lo siguiente:
- Crea una VM.
- Extrae la imagen del contenedor de la estación de trabajo en la VM.
- La primera vez que se inicia la estación de trabajo, se crea un disco persistente que actúa como directorio
/home
de la estación de trabajo. - Conecta el disco persistente a la VM.
- Inicia el contenedor en la VM y monta el disco persistente en el directorio
/home
del contenedor.
Cuando finaliza la sesión, Cloud Workstations elimina la VM, pero separa y conserva el disco persistente para que se pueda usar en futuras sesiones de la estación de trabajo. El servicio de estaciones de trabajo conserva el disco hasta que se elimina la estación de trabajo, momento en el que también se elimina el disco persistente, a menos que se configure para que se conserve.
Agrupamiento de recursos
Los administradores y los equipos de la plataforma pueden agrupar opcionalmente máquinas virtuales y discos persistentes para que las estaciones de trabajo se inicien más rápido mediante la opción de configuración de la estación de trabajo Tamaño del grupo. Cuando se especifica, el servicio agrupa el número especificado de discos persistentes y VMs, y preextrae la imagen de contenedor en la VM antes de asignar la estación de trabajo. Las VMs y los discos sin asignar del grupo se eliminan y se vuelven a crear automáticamente cada 12 horas. Esto permite que las estaciones de trabajo se inicien más rápido, ya que se elimina el tiempo de espera para crear máquinas virtuales y extraer la imagen de contenedor en la máquina virtual.
Cuando se habilita la agrupación, Cloud Workstations hace lo siguiente al iniciar una estación de trabajo:
- Selecciona una VM del pool que tenga la imagen de contenedor preextraída.
- La primera vez que se inicia la estación de trabajo, se selecciona un disco persistente del grupo.
- Conecta el disco persistente a la VM.
- Inicia la imagen de contenedor en la VM y monta el disco persistente en el directorio
/home
de la imagen de contenedor. - Vuelve a llenar el grupo creando una máquina virtual y un disco persistente para sustituir a los que se habían asignado.
Cuando finaliza la sesión, Cloud Workstations elimina la VM, pero separa y conserva el disco persistente para que se pueda usar en futuras sesiones de la estación de trabajo. El servicio de estaciones de trabajo conserva el disco hasta que se elimina la estación de trabajo, momento en el que también se elimina el disco persistente, a menos que se configure para que se conserve.
Actualizaciones de imágenes de contenedor
Como la imagen de contenedor de la estación de trabajo se extrae previamente en las VMs agrupadas, las actualizaciones de la imagen de contenedor realizadas en el repositorio de imágenes remoto con la misma etiqueta de imagen no se aplican hasta que se hayan asignado o eliminado todas las VMs agrupadas después de 12 horas. En ese momento, se crean máquinas virtuales para reponer el grupo y extraer la imagen de contenedor actualizada.
Para forzar una actualización del grupo y que se apliquen los cambios de la imagen de contenedor inmediatamente, los administradores pueden definir pool_size
como 0
y, a continuación, volver a definir el valor de pool_size
que prefieran. En la Google Cloud consola, inhabilita la función Estaciones de trabajo de inicio rápido en la configuración de la estación de trabajo, guarda la configuración, vuelve a definir el número que prefieras y, a continuación, vuelve a guardar.
Los administradores y los equipos de la plataforma también pueden actualizar la etiqueta de imagen en el campo container.image
de la configuración de la estación de trabajo, lo que fuerza una actualización del grupo para que se recoja la nueva etiqueta de imagen del contenedor.
Reducir el tiempo de inicio de las estaciones de trabajo con la transmisión de imágenes
Cloud Workstations admite la transmisión de imágenes, lo que proporciona un tiempo de inicio de la estación de trabajo más rápido al reducir el tiempo de extracción de la imagen del contenedor de la estación de trabajo.
La distribución de imágenes en streaming en Cloud Workstations suele reducir el tiempo de extracción de imágenes de contenedor de minutos a segundos, y los contenedores de estaciones de trabajo suelen empezar a ejecutarse sin esperar a que se descargue toda la imagen.
Requisitos
Para usar la transmisión de imágenes en Cloud Workstations, debes cumplir los siguientes requisitos:
Debes habilitar la API Container File System en el proyecto host de las estaciones de trabajo.
Habilitar la API Container File System
También puede ejecutar el siguiente comando de la CLI de
gcloud
para habilitar la API Container File System en el proyecto host de las estaciones de trabajo:gcloud services enable containerfilesystem.googleapis.com
Las imágenes de contenedor deben almacenarse en Artifact Registry.
Debes especificar una cuenta de servicio para usarla en la configuración de tu estación de trabajo.
Si tu clúster está dentro de un perímetro de Controles de Servicio de VPC, debes añadir una regla de salida que permita a tu cuenta de servicio acceder a la API Container File System en el proyecto que aloja tu imagen de contenedor. Si usas un IDE preconfigurado, debes añadir el proyecto
cloud-workstations-images
(número de proyecto662288601415
) a la lista de permitidos.
Limitaciones
Es posible que no notes las ventajas de la transmisión de imágenes durante la primera extracción de una imagen apta. Sin embargo, después de que la transmisión de imágenes almacene en caché la imagen, las futuras extracciones de imágenes en una estación de trabajo se beneficiarán de la transmisión de imágenes.
Se aplican otras limitaciones de la transmisión de imágenes de GKE.
Tiempos de espera de inactividad
Puedes configurar tus estaciones de trabajo para que se apaguen automáticamente tras un periodo de inactividad. El tiempo de espera inactivo se restablece con cada solicitud de red entrante y cada vez que se emite la llamada a la API workstations.Start
. Además, los IDEs preconfigurados
instalados en las imágenes de la estación de trabajo base
vienen preinstalados con un complemento para detectar la interacción con el IDE (clic del ratón, pulsación de teclas, etc.)
y restablecer el tiempo de espera por inactividad.
Si inicias un proceso en segundo plano de larga duración y dejas de interactuar con la estación de trabajo, es posible que alcances el umbral de tiempo de espera por inactividad. Esto provoca que la estación de trabajo se apague.
Si la estación de trabajo debe mantenerse activa, activa la llamada a la API workstation.Start
en el proceso en segundo plano para evitar que se apague por inactividad. Por ejemplo, si usas la CLI de Google Cloud, puedes hacerlo ejecutando el comando gcloud workstations start.