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 sem problemas.
O diagrama a seguir ilustra a arquitetura do Cloud Workstations.
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ções de trabalho inclui dois componentes gerenciados 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. Isso gerencia os recursos das estações de trabalho ao longo do ciclo de vida e fornece saída e entrada de rede para as estações de trabalho por uma gateway de cluster.
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ção de trabalho, você especifica um projeto e uma 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 sua VPC, permitindo a criação de recursos dentro do projeto.
Instância de VM: uma VM do Compute Engine é criada dinamicamente dentro da sua projeto e VPC após o início de uma estação de trabalho. 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 oferece várias imagens de base pré-configuradas com ferramentas de linguagem e ambientes de desenvolvimento integrado conhecidos. Além disso, os administradores e as equipes de plataforma podem personalizar seus ambientes criar e especificar imagens de contêiner personalizadas que contêm as ferramentas necessárias para atender às necessidades necessidades. 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 montado na pasta
/home
, permitindo o armazenamento de dados e arquivos 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 desses recursos na configuração da estação de trabalho.
Quando uma estação de trabalho é iniciada, as Estações de trabalho do Cloud fazem 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
diretório
/home
no contêiner.
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 de trabalho 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
Os administradores e as equipes de plataforma têm a opção de agrupar VMs e discos permanentes. para uma inicialização mais rápida da estação de trabalho usando o estação de trabalho tamanho do pool de configuração do Terraform. 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 excluídos e recriados automaticamente 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 na VM.
Quando o pool está 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 é iniciada, um disco permanente é selecionado do pool.
- Anexa o disco permanente à VM.
- Inicia a imagem do contêiner na VM e monta o disco permanente no
/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 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 de trabalho seja Nesse ponto, o disco permanente também é excluído, a menos que seja opcionalmente configuradas para serem retidas.
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 do contêiner atualizada.
Para forçar uma atualização de pool a selecionar imediatamente as atualizações da imagem do contêiner,
os administradores podem definir pool_size
como 0
e, em seguida, defini-lo novamente como
pool_size
preferencial. No console do Google Cloud, desative o
Estações de trabalho de início rápido na configuração da estação de trabalho, salve o
configuração, defina-o de volta para o número preferido e salve-o 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.
Reduza 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 normalmente começam a ser executados sem esperar o download de toda a imagem.
Requisitos
Você precisa atender aos seguintes requisitos para usar o streaming de imagens nas estações de trabalho do Cloud:
Ative a API Container File System no projeto host de 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 no mesmo região como a região do Cloud Workstations ou em um multirregional que corresponde à região em que suas estações de trabalho são executadas.
É necessário especificar uma conta de serviço para uso na configuração da estação de trabalho.
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 ambiente de desenvolvimento integrado pré-configurado, será preciso adicionar 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 a imagem em cache, a imagem futura extrai todos os benefícios do cluster pelo streaming de imagens.
Outras limitações de streaming de imagens do GKE se aplicam.