O Cloud Workstations gerencia recursos do Google Cloud, como o Compute Engine VMs e discos permanentes (DPs), para dar a você mais visibilidade e controle sobre os do Google Cloud. Por exemplo, é possível configurar snapshots de discos programados políticas que aplicam políticas de backup para todos os DPs de estações de trabalho. Da mesma forma, ter VMs no seu projeto permite acessar e gerenciar recursos na rede VPC de forma simples.
O diagrama a seguir ilustra a arquitetura das estações de trabalho do Cloud.
Cluster de estações de trabalho
Um cluster de estações de trabalho contém e gerencia uma coleção de estações de trabalho única região da nuvem e VPC rede dentro da sua projeto. Cada cluster de estação de trabalho inclui dois componentes gerenciados pelo Google Cloud: um controlador e um gateway.
Controlador: gerencia o ciclo de vida das instâncias de VM e de outros recursos da estação de trabalho no projeto.
Os controladores usam a API Compute Engine para gerenciar o ciclo de vida dos recursos e o Private Service Connect para encaminhar o tráfego para as VMs das estações de trabalho.
Gateway: recebe tráfego de clientes vinculados a estações de trabalho e encaminha o tráfego para a instância de VM apropriada. Cada cluster de estações de trabalho tem um nome de domínio exclusivo, e cada estação de trabalho pode ser alcançado em um subdomínio do domínio do cluster da estação de trabalho, por exemplo,
$WORKSTATION_ID.$CLUSTER_ID.cloudworkstations.dev
:
Outros recursos dos clusters de estações de trabalho são:
Os administradores e as equipes de plataforma criam clusters de estações de trabalho, que definem um grupo de estações de trabalho em uma região específica e a rede VPC a que elas estão conectadas.
Os clusters de estações de trabalho não estão relacionados Google Kubernetes Engine (GKE) clusters.
Cada cluster de estação de trabalho tem um controlador dedicado conectado a uma VPC em que as estações de trabalho residem com o Private Service Connect. Isso não afeta os limites de peering da VPC. Esse controlador gerencia os recursos das estações de trabalho ao longo do ciclo de vida e oferece saída e entrada de rede para as estações de trabalho por um gateway de cluster público.
Cada região de nuvem requer pelo menos um cluster de estação de trabalho.
Se necessário, também é possível ativar uma configuração particular gateway, de modo que somente endpoints em sua rede privada têm acesso a o Cloud Workstations.
Rede VPC
Ao criar um cluster de estações de trabalho, você especifica um projeto e um rede VPC para hospedar os recursos. Cloud Workstations provisiona os seguintes recursos no projeto:
Private Service Connect: estabelece uma conexão entre o controlador do Cloud Workstations e a VPC, permitindo a criação de recursos no projeto.
Instância de VM: uma VM do Compute Engine é criada dinamicamente no seu projeto e na VPC depois que uma estação de trabalho é iniciada. Essa VM é excluída automaticamente no final de uma sessão de usuário ou após um tempo limite configurável.
VM Gateway: extrai o tráfego do cliente do cluster da estação de trabalho o gateway, o autentica e o autoriza e o encaminha para o contêiner do Docker.
Container: define as ferramentas pré-instaladas em uma estação de trabalho, como o ambiente de desenvolvimento integrado ou o editor de código, e quaisquer outros programas ou configurações conforme especificado pela configuração da estação de trabalho.
O Cloud Workstations fornece várias imagens de base preconceituadas com ambientes de desenvolvimento integrados e ferramentas de linguagem conhecidos. Além disso, administradores e equipes de plataforma podem personalizar os ambientes criando e especificando imagens de contêiner personalizadas que contêm as ferramentas necessárias para atender às necessidades dos desenvolvedores. Essas imagens de contêiner podem estender a imagem de base do Cloud Workstations ou ser novas imagens de contêiner Linux personalizadas criadas pela equipe da plataforma.
Disco permanente: um disco permanente anexado à VM da estação de trabalho montada na pasta
/home
, permitindo que dados e arquivos sejam armazenados após o término da sessão.
Ciclo de vida dos recursos
O Cloud Workstations gerencia VMs, imagens de contêiner e discos permanentes para uso como o ambiente de execução de cada estação de trabalho. Configure as especificações esses recursos em sua estação de trabalho do Terraform.
Quando uma estação de trabalho é iniciada, o Cloud Workstations faz o seguinte:
- Cria uma VM.
- Extrai a imagem do contêiner da estação de trabalho para a VM.
- Na primeira vez que a estação de trabalho é iniciada, ela cria um disco permanente
para atuar como o diretório
/home
da estação de trabalho. - Anexa o disco permanente à VM.
- Inicia o contêiner na VM e monta o disco permanente no
/home
no contêiner.
Quando a sessão termina, o Cloud Workstations exclui a VM, mas remove e retém o disco permanente para que ele possa ser usado em uma estação de trabalho futura de conteúdo. O serviço de estações de trabalho retém o disco até que a estação seja excluída, momento em que o disco permanente também é excluído, a menos que seja opcionalmente configurado para ser retido.
Pool de recursos
Administradores e equipes de plataforma podem agrupar VMs e discos persistentes para uma inicialização mais rápida da estação de trabalho usando a opção de configuração tamanho do pool. Quando especificado, o serviço agrupa o número especificado de discos e VMs persistentes e pré-extrai a imagem do contêiner para a VM antes da atribuição da estação de trabalho. As VMs e os discos não atribuídos no pool são automaticamente excluídos e recriados a cada 12 horas. Isso permite uma inicialização mais rápida da estação de trabalho vezes, removendo o tempo de espera para criar VMs e extrair a imagem do contêiner para a VM.
Quando o agrupamento é ativado, o Cloud Workstations faz o seguinte ao iniciar uma estação de trabalho:
- Seleciona uma VM do pool que tem a imagem do contêiner pré-extraida.
- Na primeira vez que a estação de trabalho for iniciada, seleciona um disco permanente do pool.
- Anexar o disco permanente à VM.
- Inicia a imagem do contêiner na VM e monta o disco permanente no
diretório
/home
na imagem do contêiner. - Preenche o pool novamente criando uma nova VM e um disco permanente para substituí-los que foram atribuídas.
Quando a sessão termina, o Cloud Workstations exclui a VM, mas desconecta e mantém o disco permanente para que ele possa ser usado em sessões futuras da estação de trabalho. O serviço de estações de trabalho retém o disco até que a estação seja excluída, momento em que o disco permanente também é excluído, a menos que seja opcionalmente configurado para ser retido.
Atualizações de imagem do contêiner
Como a imagem do contêiner da estação de trabalho é pré-extraida para as VMs agrupadas, as atualizações da imagem do contêiner feitas no repositório de imagens remoto com a mesma tag de imagem não são detectadas até que todas as VMs agrupadas sejam atribuídas ou excluídas após 12 horas. Nesse ponto, novas VMs são criadas para reabastecer o pool e extrair a imagem atualizada do contêiner.
Para forçar uma atualização do pool a fim de receber as atualizações da imagem do contêiner imediatamente,
os administradores podem definir o pool_size
como 0
e, em seguida, definir de volta para o
pool_size
preferido. No console do Google Cloud, desative o recurso Estações de trabalho de início rápido na configuração da estação de trabalho, salve a configuração, defina-a de volta para o número de preferência e salve novamente.
Como alternativa, administradores e equipes de plataforma podem atualizar a tag de imagem no campo
container.image
na configuração da estação de trabalho, o que força uma atualização do pool para
capturar a nova tag de imagem do contêiner.
Reduzir o tempo de inicialização da estação de trabalho com o streaming de imagens
O Cloud Workstations oferece suporte ao streaming de imagens, que acelera o tempo de inicialização da estação de trabalho reduzindo o tempo de extração da imagem do contêiner.
O streaming de imagens no Cloud Workstations normalmente reduz a extração de imagens do contêiner de minutos para segundos, e os contêineres de estações de trabalho geralmente começam a ser exibidos sem esperar o download da imagem inteira.
Requisitos
Você precisa atender aos seguintes requisitos para usar o streaming de imagens no Cloud Workstations:
Você precisa ativar a API Container File System no projeto host das estações de trabalho.
Ativar a API Container File System
Como alternativa, execute o seguinte comando da CLI
gcloud
para ative a API Container File System no projeto host das estações de trabalho:gcloud services enable containerfilesystem.googleapis.com
As imagens de contêiner precisam ser armazenadas no Artifact Registry.
O repositório do Artifact Registry precisa estar na mesma região que a região das estações de trabalho do Cloud ou em uma multirregião que corresponde à região em que as estações de trabalho estão em execução.
Especifique uma conta de serviço para uso na estação de trabalho configuração do Terraform.
Se o cluster estiver dentro de um perímetro do VPC Service Controls, adicione uma regra de saída que permita que a conta de serviço acesse a API Container File System no projeto que hospeda a imagem do contêiner. Se você estiver usando um IDE pré-configurado, adicione o projeto
cloud-workstations-images
(número do projeto662288601415
) à lista de permissões.
Limitações
Talvez você não perceba os benefícios do streaming de imagens durante o primeiro pull de uma imagem qualificada. No entanto, depois que o streaming de imagens armazena imagens, futuras pulls de imagens em uma estação de trabalho se beneficiam do streaming de imagens.
Outras limitações de streaming de imagens do GKE se aplicam.