Este documento apresenta uma visão geral do Private Service Connect em clusters do Google Kubernetes Engine (GKE). Antes de continuar a leitura, confira se você conhece as redes VPC e os conceitos básicos de rede, como endereços IP.
Visão geral
O Private Service Connect (PSC) faz parte da infraestrutura de rede do Google Cloud, que permite que seus clusters do GKE consumam de maneira segura e particular serviços hospedados no Google Cloud ou em ambientes locais, sem precisar exibir esses serviços publicamente. Com o PSC, 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 em uma VPC.
Em um cluster do GKE que usa a infraestrutura PSC, toda a comunicação entre o plano de controle do cluster e os nós ocorre 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 da 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 e longe da Internet pública. Isso minimiza o risco de acesso não autorizado.
Conectividade simplificada: em clusters de 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. 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 do cluster, dos pools de nós ou das cargas de trabalho, tornando os clusters mais escalonáveis e seguros. É possível configurar uma mistura de pools de nós particulares e públicos no cluster.
Flexibilidade: depois de criar o cluster, você pode 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 pela 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 no URL, siga estas etapas para reduzir essa incompatibilidade:
Crie um serviço sem comando 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 aguardando na porta 3000:
apiVersion: v1 kind: Service metadata: name: <service-name> spec: clusterIP: None ports: - port: 3000 targetPort: 3000
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
Atualizar 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 escuta na porta 3000.Verificar o webhook: confirme se o webhook pode continuar recebendo solicitações do servidor da API e aprová-las, rejeitá-las ou modificá-las com base na 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 novos detalhes do certificado. 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 que usa PSC:
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: é 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 privada e permite que o tráfego flua entre os nós e o plano de controle.
Como configurar o acesso ao cluster
Você tem várias opções para configurar o acesso ao plano de controle e ao nó em clusters com 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.
Controle o acesso ao plano de controle
Acesse o plano de controle usando apenas o endpoint baseado em DNS (recomendado). É possível autorizar solicitações para acessar o 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 pelo Google (para gerenciamento de clusters) e endereços IP internos do cluster do GKE.
Se você estiver usando endereços IP, recomendamos o uso de 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 Google Cloud VMs, Cloud Run ou funções do Cloud Run com IPs externos Google Cloud .
Acesse o plano de controle com endpoints baseados em DNS e IP.
Acesso ao nó do cluster
Com clusters com PSC ativado, é 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 da 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, você pode executar um conjunto 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 padrão, é possível provisionar alguns dos nós com endereços IP internos, enquanto outros podem usar 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 cluster com PSC, 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 privados. É possível atualizar essa configuração e ativar nós privados após a criação do cluster.
A seguir
- Saiba como personalizar o isolamento de rede no GKE.