Sobre o Private Service Connect


Nesta página, você encontra uma visão geral do Private Service Connect em clusters do Google Kubernetes Engine (GKE).

Nesta página, consideramos que você esteja familiarizado com o seguinte:

  • Princípios básicos 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 seus clusters do GKE consumam de forma segura e particular serviços hospedados no Google Cloud ou em ambientes locais, sem precisar expor esses serviços publicamente. Com o PSC,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 usando 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 forma 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 dentro da rede do Google 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 fica totalmente dentro da rede do cluster, eliminando a necessidade de configurações de rede complexas.

Escalonabilidade: é possível criar até 1.000 clusters ativados com PSC para atender a requisitos de recursos altos. Por outro lado, é 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 do cluster, dos pools de nós ou das cargas de trabalho, tornando seus clusters mais escalonáveis e seguros. É possível configurar uma combinação de pools de nós particulares e públicos no seu 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 privado 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 é compatível com endereços IP internos em URLs de webhooks configurados. Se você tiver um webhook com um endereço IP interno no URL, siga estas etapas para reduzir essa incompatibilidade:

  1. Crie um serviço headless sem um seletor para gerenciar manualmente os endpoints a que esse serviço direciona o tráfego. O exemplo a seguir mostra um serviço com um webhook 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 no URL, crie 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 o URL com o endereço IP interno e adicione o serviço que você criou na primeira etapa. 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 detecta na porta 3000.

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

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

Arquitetura

O diagrama a seguir fornece uma visão geral da arquitetura de um cluster usando 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 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 gerenciado pelo Google. Um cluster regional tem várias réplicas do plano de controle, e cada uma delas é 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 endpoint 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 fica na rede VPC do seu projeto. O endpoint do PSC funciona 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. Como mostrado no diagrama anterior, o endpoint do PSC acessa o anexo de serviço por uma conexão particular e permite o fluxo de tráfego 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 aos nós em clusters ativados para PSC. Você pode mudar essas configurações a qualquer momento depois da criação do cluster. Para configurar o acesso ao cluster, consulte Personalizar o isolamento de rede.

Acesso ao plano de controle

  • Acessar 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 o acesso apenas de endereços IP reservados pelo Google (para gerenciamento de clusters) e endereços IP internos do cluster do GKE.

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

  • Acesse o plano de controle com endpoints baseados em DNS e 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. Você também pode mudar a configuração de rede do nó 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, você pode estar executando 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 e outros com endereços IP externo.

Clusters com o Private Service Connect

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

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

Para ativar o PSC no cluster, crie-o 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. Você pode atualizar essa configuração e ativar os nós particulares depois da criação do cluster.

A seguir