VPC Service Controls para a Cloud Service Mesh (gerida)

O Cloud Service Mesh (gerido) suporta os VPC Service Controls como uma funcionalidade geralmente disponível (GA) para novos planos de controlo.

Para verificar se o seu plano de controlo suporta a disponibilidade geral dos VPC Service Controls, verifique o estado da funcionalidade de malha da sua subscrição para a condição VPCSC_GA_SUPPORTED.

gcloud container fleet mesh describe --project FLEET_PROJECT_ID

O resultado é semelhante ao seguinte:

(...)
membershipStates:
  projects/FLEET_PROJECT_NUMBER/locations/MEMBERSHIP_LOCATION/memberships/MEMBERSHIP_ID:
    servicemesh:
      conditions:
      - code: VPCSC_GA_SUPPORTED
        details: This control plane supports VPC Service Controls GA.
        documentationLink: http://cloud.google.com/service-mesh/v1.24/docs/managed/VPC Service Controls
        severity: INFO
(...)

Se tiver um plano de controlo existente que não comunique a condição VPCSC_GA_SUPPORTED e quiser basear-se nos VPC Service Controls, contacte o apoio técnico.

Antes de começar

A política da organização e o perímetro de serviço do VPC Service Controls estão configurados ao nível da organização. Certifique-se de que lhe foram concedidas as funções adequadas para administrar os VPC Service Controls.

Configure o perímetro de serviço do VPC Service Controls

Crie ou atualize o seu perímetro de serviço:

  1. Adicione os projetos de cluster e o projeto de frota ao perímetro de serviço. Ter uma malha de serviços distribuída por vários perímetros dos VPC Service Controls não é suportado.

  2. Adicione serviços restritos ao perímetro de serviço.

    Tem de adicionar serviços específicos às listas de serviços permitidos e restritos no perímetro de serviço para que o cluster do Cloud Service Mesh possa aceder aos mesmos. O acesso a estes serviços também está restrito na rede da nuvem virtual privada (VPC) do cluster.

    Se não adicionar estes serviços, a instalação da malha de serviços na nuvem pode falhar ou não funcionar corretamente. Por exemplo, se não adicionar a API Mesh Configuration ao perímetro de serviço, a instalação falha e as cargas de trabalho não recebem a respetiva configuração do Envoy do plano de controlo gerido.

    Consola

    1. Siga os passos em Atualizar um perímetro de serviço para editar o perímetro.
    2. Clique na página Editar perímetro de serviço da VPC.
    3. Em Serviços restritos, Serviços a proteger, clique em Adicionar serviços.
    4. Na caixa de diálogo Especificar serviços a restringir, clique em Filtrar serviços e introduza API Mesh Configuration.
    5. Selecione a caixa de verificação do serviço.
    6. Clique em Adicionar API Mesh Configuration.
    7. Repita os passos c a f para adicionar:
      • API da autoridade de certificação do Cloud Service Mesh
      • GKE Hub API
      • API Cloud IAM
      • API Cloud Monitoring
      • API Cloud Trace
      • API Cloud Monitoring
      • API Google Cloud Resource Manager
      • API Google Compute Engine
      • API Google Container Registry
      • API Artifact Registry
      • API Google Cloud Storage
      • API Cloud Logging
      • API Security Token Service
    8. Clique em Guardar.

    gcloud

    Para atualizar a lista de serviços restritos, use o comando update e especifique os serviços a adicionar como uma lista delimitada por vírgulas:

    gcloud access-context-manager perimeters update PERIMETER_NAME \
      --add-restricted-services=meshconfig.googleapis.com,meshca.googleapis.com,gkehub.googleapis.com,iam.googleapis.com,monitoring.googleapis.com,cloudtrace.googleapis.com,monitoring.googleapis.com,cloudresourcemanager.googleapis.com,compute.googleapis.com,containerregistry.googleapis.com,artifactregistry.googleapis.com,storage.googleapis.com,logging.googleapis.com,sts.googleapis.com \
      --policy=POLICY_NAME

    Onde:

    • PERIMETER_NAME é o nome do perímetro de serviço que quer atualizar.

    • POLICY_NAME é o nome numérico da política de acesso da sua organização. Por exemplo, 330193482019.

  3. Clique em Serviços acessíveis por VPC e defina-o como "Todos os serviços restritos", para que os serviços restritos no passo acima continuem acessíveis a partir do perímetro do VPC Service Controls.

  4. A menos que esteja a instalar o Cloud Service Mesh a partir de uma rede no perímetro, adicione uma regra de entrada para permitir que a identidade que executa o comando asmcli aceda ao perímetro de serviço.

    Para mais informações, consulte o artigo Atualizar um perímetro de serviço.

Instale a malha de serviços da nuvem gerida num perímetro do VPC Service Controls

Siga os passos na página Configure o Cloud Service Mesh gerido. Em seguida, verifique se o plano de controlo foi aprovisionado com êxito e se não existem erros relacionados com os VPC Service Controls.

Resolução de problemas

Não é possível criar um cluster com a imagem mais recente do GKE 1.22

Existe um problema conhecido que impede a criação de um cluster com a imagem 1.22 mais recente num ambiente restrito do VPC Service Controls. A solução alternativa consiste em criar primeiro este cluster com a imagem do canal do GKE predefinida e, em seguida, atualizar a imagem:

gcloud container clusters create CLUSTER \
  --region REGION \
  --release-channel=rapid \
  --workload-pool=PROJECT_ID.svc.id.goog \
  --project PROJECT_ID
gcloud container clusters upgrade CLUSTER \
  --region REGION \
  --master --cluster-version 1.22 \
  --project PROJECT_ID

Os contentores não conseguem transferir as respetivas imagens.

Isto pode acontecer se as imagens estiverem localizadas fora do perímetro do serviço. Mova as imagens para um contentor localizado dentro do perímetro ou atualize o perímetro para adicionar uma regra de saída. Normalmente, a regra de saída pode permitir que identidades selecionadas acedam à API Container Registry, à API Artifact Registry e à API Cloud Storage.

O campo Status do CRD apresenta erros do VPC Service ControlsControlPlaneRevision

Execute este comando para obter mais informações sobre o erro:

gcloud logging read --project=PROJECT_ID \
'protoPayload.metadata.@type=type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata'

Onde:

  • PROJECT_ID é o ID do projeto que está a encontrar erros.