Arquitetura do Cloud Workstations

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 permite que você acesse e gerencie recursos no seu rede VPC do produtor de serviços.

O diagrama a seguir ilustra a arquitetura do Cloud Workstations.

Arquitetura
diagrama

Figura 1. 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 da VM de instâncias e outros recursos de estações de trabalho no seu projeto.

    Os controladores usam a API Compute Engine para gerenciar o ciclo de vida do os recursos e utilizar Private Service Connect (em inglês) para rotear tráfego para as estações de trabalho ou de várias VMs.

  • 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:

Veja a seguir outros recursos dos clusters de estações de trabalho:

  • Os administradores e as equipes de plataforma criam clusters de estações de trabalho, um grupo de estações de trabalho em uma determinada região e a VPC em que estão anexados.

  • Os clusters de estações de trabalho não estão relacionados Google Kubernetes Engine (GKE) clusters.

  • Cada cluster de estações de trabalho tem um controlador dedicado conectado a um VPC na qual as estações de trabalho residem Private Service Connect e isso não afeta os limites de peering de 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çõ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 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. Esta VM está excluída automaticamente ao final de uma sessão de usuário ou após uma configuração tempo limite da sessão.

    • 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.

    • Contêiner: define as ferramentas pré-instaladas em uma estação de trabalho, como o IDE ou editor de código e quaisquer outros programas ou configurações, conforme especificado pelo a 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. Esses as imagens de contêiner podem estender a imagem de base do Cloud Workstations ou podem ser imagens novas e personalizadas de contêineres do Linux 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 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:

  1. Cria uma VM.
  2. Extrai a imagem do contêiner da estação de trabalho para a VM.
  3. Na primeira vez que a estação de trabalho é iniciada, cria um disco permanente para atuar como o diretório /home da estação de trabalho.
  4. Anexa o disco permanente à VM.
  5. 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 de trabalho seja Nesse ponto, o disco permanente também é excluído, a menos que seja opcionalmente configuradas para serem retidas.

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 os discos permanentes e as VMs e extrai a imagem do contêiner para a VM antes de atribuição de 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 na VM.

Quando o pool está ativado, o Cloud Workstations faz o seguinte ao iniciar uma estação de trabalho:

  1. Seleciona uma VM do pool que tem a imagem do contêiner pré-extraída.
  2. Na primeira vez que a estação de trabalho for iniciada, seleciona um disco permanente do pool.
  3. Anexa o disco permanente à VM.
  4. Inicia a imagem do contêiner na VM e monta o disco permanente no /home na imagem do contêiner.
  5. 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é-extraída para as VMs em pool, atualizações na imagem de contêiner feitas no repositório de imagens remotas com as mesmas a tag de imagem não é selecionada até que todas as VMs em pool tenham sido atribuídas ou excluídos 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, os administradores e as equipes de plataforma podem atualizar a tag de imagem no container.image na configuração da estação de trabalho, o que força uma atualização do pool a selecionar a nova tag de imagem de 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 oferece o tempo de inicialização da estação de trabalho reduzindo o tempo de extração da imagem do contêiner da estação de trabalho.

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 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 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.

  • 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 um regra de saída permitindo que sua 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 projeto 662288601415) à 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.