Cloud Workstations gestisce le risorse, come le VM di Compute Engine e i dischi permanenti, per offrirti maggiore visibilità e controllo sulle risorse dei tuoi progetti. Google Cloud Ad esempio, puoi configurare criteri di snapshot del disco pianificati che applicano criteri di backup per tutti i PD delle workstation. Allo stesso modo, le VM all'interno del tuo progetto ti consentono di accedere e gestire facilmente le risorse nella tua rete VPC.
Il seguente diagramma illustra l'architettura di Cloud Workstations.
Cluster di workstation
Un cluster di workstation contiene e gestisce una raccolta di workstation in una singola regione cloud e in una rete VPC all'interno del tuo progetto. Ogni cluster di workstation include due componenti gestiti da Google Cloud: un controller e un gateway.
Controller:gestisce il ciclo di vita delle istanze VM e di altre risorse della workstation all'interno del progetto.
I controller utilizzano l'API Compute Engine per gestire il ciclo di vita delle risorse e utilizzano Private Service Connect per indirizzare il traffico alle VM delle workstation.
Gateway:riceve il traffico dai client destinato a workstation specifiche e lo inoltra all'istanza VM appropriata. Ogni cluster di workstation ha un nome di dominio univoco e ogni workstation è raggiungibile in un sottodominio del dominio del cluster di workstation, ad esempio
$WORKSTATION_ID.$CLUSTER_ID.cloudworkstations.dev.
Altre funzionalità dei cluster di workstation sono le seguenti:
Gli amministratori e i team della piattaforma creano cluster di workstation, che definiscono un gruppo di workstation in una determinata regione e la rete VPC a cui sono collegati.
I cluster di workstation non sono correlati ai cluster Google Kubernetes Engine (GKE).
Ogni cluster di workstation ha un controller dedicato connesso a un VPC in cui risiedono le workstation con Private Service Connect (e questo non influisce sui limiti di peering VPC). Questo controller gestisce le risorse delle workstation durante il loro ciclo di vita e fornisce l'uscita e l'ingresso di rete alle workstation tramite un gateway del cluster pubblico.
Ogni regione cloud richiede almeno un cluster di workstation.
Se necessario, è anche possibile abilitare un gateway privato, in modo che solo gli endpoint all'interno della tua rete privata abbiano accesso a Cloud Workstations.
Rete VPC
Quando crei un cluster di workstation, specifichi un progetto e una rete VPC per ospitare le risorse. Cloud Workstations esegue il provisioning delle seguenti risorse nel tuo progetto:
Private Service Connect: stabilisce una connessione tra il controller Cloud Workstations e il tuo VPC, consentendo la creazione di risorse all'interno del tuo progetto.
Istanza VM: una VM Compute Engine viene creata dinamicamente all'interno del tuo progetto e della tua rete VPC dopo l'avvio di una workstation. Questa VM viene eliminata automaticamente al termine di una sessione utente o dopo un timeout della sessione configurabile.
VM Gateway: estrae il traffico client dal gateway del cluster workstation, lo autentica e lo autorizza e lo inoltra al container.
Container: definisce gli strumenti preinstallati in una workstation, ad esempio l'IDE o l'editor di codice, e qualsiasi altro programma o impostazione specificati dalla configurazione della workstation.
Cloud Workstations fornisce una serie di immagini di base preconfigurate con IDE e strumenti per i linguaggi più diffusi. Inoltre, gli amministratori e i team della piattaforma possono personalizzare i propri ambienti creando e specificando immagini container personalizzate che contengono gli strumenti necessari per soddisfare le esigenze degli sviluppatori. Queste immagini container possono estendere l'immagine di base di Cloud Workstations o possono essere nuove immagini container Linux personalizzate create dal team della piattaforma.
Disco permanente: un disco permanente collegato alla VM workstation montato sulla cartella
/home, che consente di archiviare dati e file al termine della sessione.
Ciclo di vita delle risorse
Cloud Workstations gestisce VM, immagini container e dischi permanenti da utilizzare come ambiente di runtime per ogni workstation. Configura le specifiche per queste risorse nella configurazione della workstation.
Quando viene avviata una workstation, Cloud Workstations esegue le seguenti operazioni:
- Crea una VM.
- Estrae l'immagine container della workstation nella VM.
- La prima volta che viene avviata la workstation, viene creato un disco permanente
che funge da directory
/homedella workstation. - Collega il disco permanente alla VM.
- Avvia il container sulla VM e monta il disco permanente nella directory
/homedel container.
Al termine della sessione, Cloud Workstations elimina la VM, ma scollega e conserva il disco permanente in modo che possa essere utilizzato nelle sessioni future della workstation. Il servizio workstation conserva il disco finché la workstation non viene eliminata, dopodiché viene eliminato anche il disco permanente, a meno che non sia configurato facoltativamente per essere conservato.
Pooling di risorse
Gli amministratori e i team della piattaforma possono raggruppare facoltativamente VM e dischi permanenti per un avvio più rapido della workstation utilizzando l'opzione di configurazione della workstation dimensione pool. Se specificato, il servizio raggruppa il numero specificato di dischi permanenti e VM ed esegue il pull dell'immagine container sulla VM prima dell'assegnazione della workstation. Le VM e i dischi non assegnati nel pool vengono eliminati e ricreati automaticamente ogni 12 ore. Ciò consente tempi di avvio della workstation più rapidi eliminando il tempo di attesa per la creazione delle VM e l'estrazione dell'immagine container nella VM.
Quando il pooling è abilitato, Cloud Workstations esegue le seguenti operazioni all'avvio di una workstation:
- Seleziona una VM dal pool in cui è stata precaricata l'immagine container.
- La prima volta che viene avviata la workstation, seleziona un disco permanente dal pool.
- Collega il disco permanente alla VM.
- Avvia l'immagine container sulla VM e monta il disco permanente nella
directory
/homenell'immagine container. - Riempie il pool creando una nuova VM e un nuovo disco permanente per sostituire quelli che sono stati assegnati.
Al termine della sessione, Cloud Workstations elimina la VM, ma scollega e conserva il disco permanente in modo che possa essere utilizzato nelle sessioni future della workstation. Il servizio workstation conserva il disco finché la workstation non viene eliminata, dopodiché viene eliminato anche il disco permanente, a meno che non sia configurato facoltativamente per essere conservato.
Aggiornamenti delle immagini container
Poiché l'immagine container della workstation viene prelevata nelle VM in pool, gli aggiornamenti all'immagine container apportati nel repository di immagini remoto con lo stesso tag immagine non vengono rilevati finché tutte le VM in pool non sono state assegnate o eliminate dopo 12 ore. A questo punto, vengono create nuove VM per ripristinare il pool e recuperare l'immagine container aggiornata.
Per forzare l'aggiornamento di un pool in modo da rilevare immediatamente gli aggiornamenti dell'immagine container,
gli amministratori possono impostare pool_size su 0 e poi ripristinare il valore
pool_size preferito. Dalla console Google Cloud , disattiva la funzionalità
Workstation ad avvio rapido nella configurazione della workstation, salva la
configurazione, ripristina il numero preferito e salva di nuovo.
In alternativa, gli amministratori e i team della piattaforma possono aggiornare il tag dell'immagine nel campo
container.image
nella configurazione della workstation, il che forza un aggiornamento del pool per
recuperare il nuovo tag dell'immagine del container.
Ridurre il tempo di avvio della workstation con lo streaming di immagini
Cloud Workstations supporta lo streaming di immagini, che offre tempi di avvio più rapidi della workstation riducendo il tempo di pull dell'immagine container della workstation.
Lo streaming di immagini in Cloud Workstations in genere riduce il tempo di pull delle immagini container da minuti a secondi e i container delle workstation di solito iniziano a essere eseguiti senza attendere il download dell'intera immagine.
Requisiti
Per utilizzare lo streaming di immagini in Cloud Workstations, devi soddisfare i seguenti requisiti:
Devi abilitare l'API Container Filesystem nel progetto host delle workstation.
Abilita l'API Container File System
In alternativa, puoi eseguire il seguente comando CLI
gcloudper abilitare l'API Container File System nel progetto host delle workstation:gcloud services enable containerfilesystem.googleapis.com
Le immagini container devono essere archiviate in Artifact Registry.
Devi specificare un service account da utilizzare nella configurazione della workstation.
Se il cluster si trova all'interno di un perimetro dei Controlli di servizio VPC, devi aggiungere una regola di uscita che consenta al service account di accedere all'API Container File System nel progetto che ospita l'immagine container. Se utilizzi un IDE preconfigurato, devi aggiungere il progetto
cloud-workstations-images(numero di progetto662288601415) alla lista consentita.
Limitazioni
Potresti non notare i vantaggi dello streaming delle immagini durante il primo pull di un'immagine idonea. Tuttavia, dopo che Image streaming memorizza nella cache l'immagine, i futuri pull di immagini su una workstation traggono vantaggio da Image streaming.
Si applicano altre limitazioni di GKE Image Streaming.
Timeout di inattività
Puoi configurare le workstation in modo che si arrestino automaticamente dopo un periodo di inattività. Il timeout di inattività viene reimpostato a ogni richiesta di rete in entrata
e ogni volta che viene emessa la chiamata API workstations.Start. Inoltre, gli IDE preconfigurati
installati nelle immagini della workstation di base
vengono preinstallati con un plug-in per rilevare l'interazione con l'IDE (clic del mouse, pressione di tasti e così via)
e reimpostare il timeout di inattività.
Se avvii un processo in background a esecuzione prolungata e smetti di interagire con la
workstation, potresti raggiungere la soglia di timeout per inattività. In questo modo, la workstation si spegne.
Se la workstation deve rimanere attiva, puoi utilizzare lo script /google/scripts/keep_alive.sh
presente nelle immagini della workstation di base per evitare i timeout di inattività. In alternativa,
attiva la chiamata API workstation.Start nel processo in background per impedire l'arresto
inattivo. Ad esempio, se utilizzi Google Cloud CLI, puoi farlo eseguendo il comando
gcloud workstations start.