Sobre o Private Service Connect

Esta página oferece uma visão geral do Private Service Connect em clusters do Google Kubernetes Engine (GKE).

Esta página pressupõe que você conhece os seguintes conceitos:

  • Noções básicas de rede, como endereçamento IP
  • Redes VPC

Visão geral

O Private Service Connect (PSC) faz parte da infraestrutura de rede do Google Cloudque permite que os clusters do GKE consumam serviços hospedados no Google Cloud ou em ambientes locais de maneira segura e particular, sem precisar expor esses serviços publicamente. Com o PSC, Google Cloud o Google Cloud atribui um endereço IP interno ao plano de controle para encaminhar solicitações à API de gerenciamento cluster do GKE, permitindo que você gerencie seus clusters sem que o tráfego passe pela Internet pública. O PSC oferece uma estrutura consistente que ajuda a conectar diferentes redes por meio de uma abordagem de rede de serviço e permite que produtores e consumidores de serviços se comuniquem usando endereços IP internos a uma VPC.

Em um cluster do GKE que usa a infraestrutura do PSC, toda a comunicação entre o plano de controle do cluster e os nós acontece de maneira particular. Também é possível isolar o cluster nos níveis do plano de controle e do pool de nós sem precisar gerenciar configurações complexas de peering de VPC.

Benefícios dos clusters ativados com o Private Service Connect

Segurança: o PSC estabelece conexões particulares entre o plano de controle e os nós do cluster do GKE, mantendo o tráfego totalmente na rede do Google Cloud e longe da Internet pública. Isso minimiza o risco de acesso não autorizado.

Conectividade simplificada: para clusters do PSC, não é necessário gerenciar sub-redes específicas para o endpoint do plano de controle. O endpoint do PSC está localizado totalmente na rede do cluster, eliminando a necessidade de configurações de rede complexas.

Escalabilidade: é possível criar até 1.000 clusters ativados com o PSC para atender a requisitos de recursos altos. Em contraste, só é possível criar até 75 clusters por zona ou região para clusters que usam o peering de rede VPC.

Configuração personalizável: o PSC permite controlar de forma independente o isolamento do plano de controle, dos pools de nós ou das cargas de trabalho do cluster, tornando seus clusters mais escalonáveis e seguros. É possível configurar uma combinação de pools de nós particulares e públicos no cluster.

Flexibilidade: depois de criar o cluster, é possível mudar as configurações de isolamento a qualquer momento. É possível alternar entre o acesso público e particular ao plano de controle e mudar a acessibilidade do pool de nós e da carga de trabalho na Internet sem precisar criar um novo cluster.

Limitações

O plano de controle tem um endpoint interno e um externo. O endpoint interno do plano de controle não oferece suporte a endereços IP internos em URLs de webhooks configurados. Se você tiver um webhook com um endereço IP interno na URL, poderá atenuar essa incompatibilidade seguindo estas etapas:

  1. Crie um serviço headless sem um seletor para gerenciar manualmente os endpoints para os quais esse serviço direciona o tráfego. O exemplo a seguir mostra um serviço com um webhook que fica escutando na porta 3000:

    apiVersion: v1
    kind: Service
    metadata:
      name: <service-name>
    spec:
      clusterIP: None
      ports:
      - port: 3000
        targetPort: 3000
    
  2. Crie um endpoint correspondente para o destino necessário. Por exemplo, se o webhook usar o endereço IP interno 10.0.0.1 na URL, será possível criar o seguinte endpoint:

    apiVersion: v1
    kind: Endpoints
    metadata:
      name: <service-name>
    subsets:
    - addresses:
      - ip: 10.0.0.1
      ports:
      - port: 3000
    
  3. Atualize a configuração do webhook: na configuração do webhook, exclua a URL com o endereço IP interno e adicione o serviço criado na primeira etapa. Por exemplo:

    ...
    kind: ValidatingWebhookConfiguration
    ...
    webhooks:
    - name: <webhook-name>
    ...
      clientConfig:
        service:
          name: <service-name>
          namespace: <namespace>
          path: "/validate"
          port: 3000
    

    No exemplo anterior, o webhook tem um caminho de /validate e fica escutando na porta 3000.

  4. Verifique o webhook: confirme se o webhook pode continuar recebendo solicitações do servidor da API e se pode aprovar, rejeitar ou modificar a solicitação com base na lógica personalizada. Se você receber um erro ao verificar o webhook, talvez seja necessário criar um novo certificado e então atualizar a configuração do webhook com os novos detalhes do certificado. Por exemplo:

    ...
    kind: ValidatingWebhookConfiguration
    ...
    webhooks:
    - name: <webhook-name>
    ...
      clientConfig:
        ...
        caBundle: <new-certificate>
    ...
    

Arquitetura

O diagrama a seguir oferece uma visão geral da arquitetura de um cluster que usa o PSC:

Arquitetura do Private Service Connect no GKE.
Figura: arquitetura do Private Service Connect

Confira a seguir os principais componentes de um cluster ativado com o PSC:

Plano de controle: todos os cluster do GKE têm um servidor da API Kubernetes gerenciado pelo plano de controle. O plano de controle é executado em uma máquina virtual (VM) que está em uma rede VPC, em um projeto do Google. Um cluster regional tem várias réplicas do plano de controle, cada uma executada na própria VM.

O plano de controle tem um endpoint interno (endpoint do Private Service Connect) para comunicação interna do cluster e um externo. É possível desativar o endpoint externo. O tráfego entre os nós e o plano de controle é totalmente roteado usando endereços IP internos. Para saber mais sobre a configuração do cluster, consulte Verificar a configuração do plano de controle.

Rede VPC: é uma rede virtual em que você cria sub-redes com intervalos de endereços IP internos especificamente para os nós e pods do cluster.

Endpoint do Private Service Connect: é o endpoint interno no plano de controle do cluster que reside na rede VPC do projeto. O endpoint do PSC atua como o ponto de entrada para acessar o plano de controle do cluster.

Anexo de serviço: o anexo de serviço é um recurso que estabelece uma conexão segura e particular entre sua rede VPC e a rede VPC do produtor. Conforme mostrado no diagrama anterior, o endpoint do PSC acessa o anexo de serviço por uma conexão particular e permite que o tráfego flua entre os nós e o plano de controle.

Como configurar o acesso ao cluster

Há várias opções para configurar o acesso ao plano de controle e o acesso a nós em clusters ativados para PSC. É possível mudar essas configurações a qualquer momento após a criação do cluster. Para configurar o acesso ao cluster, consulte Personalizar o isolamento de rede.

Acesso ao plano de controle

  • Acesse o plano de controle usando apenas o endpoint baseado em DNS (recomendado). É possível autorizar solicitações de acesso ao plano de controle criando políticas de permissão do IAM.

  • Acesse o plano de controle usando apenas endpoints baseados em IP. É possível usar os endpoints externos e internos do plano de controle ou desativar o endpoint externo para permitir apenas o acesso de endereços IP reservados do Google (para fins de gerenciamento de clusters) e endereços IP internos cluster do GKE.

    Se você estiver usando endereços IP, recomendamos que use redes autorizadas para restringir o acesso ao plano de controle do cluster. Com redes autorizadas, também é possível bloquear o acesso ao plano de controle de Google Cloud VMs, Cloud Run ou Cloud Run functions originados com Google Cloud IPs externos.

  • Acesse o plano de controle com endpoints baseados em DNS e em IP.

Acesso ao nó do cluster

Com clusters ativados para PSC, é possível configurar clusters de modo misto. É possível configurar o cluster para ter nós com acesso interno ou externo. Também é possível mudar a configuração de rede de nós dependendo do tipo de cluster usado:

  • Para clusters do Autopilot, é possível configurar algumas cargas de trabalho para serem executadas em nós particulares e outras em nós públicos. Por exemplo, é possível executar uma combinação de cargas de trabalho no cluster em que algumas exigem acesso à Internet e outras não. É possível implantar uma carga de trabalho em um nó com endereçamento IP externo para garantir que apenas essas cargas de trabalho sejam acessíveis publicamente.

  • Para clusters Standard, é possível provisionar alguns nós com endereços IP internos, enquanto outros nós podem usar endereços IP externo.

Clusters com o Private Service Connect

Para verificar se o cluster usa o Private Service Connect, execute o gcloud container clusters describe comando. Se o cluster usar o Private Service Connect, o recurso privateClusterConfig terá os seguintes valores:

  • O campo peeringName está vazio ou não existe.
  • O campo privateEndpoint tem um valor atribuído.

Para ativar o cluster com o PSC, crie o cluster na versão 1.29 ou mais recente. Caso contrário, para as versões 1.28 e anteriores, crie o cluster sem ativar nós particulares. É possível atualizar essa configuração e ativar nós particulares após a criação do cluster.

A seguir