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 os clusters do GKE consumam de maneira segura e privada serviços hospedados no Google Cloud ou em ambientes locais, sem precisar expor 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 fornece um framework consistente que ajuda a conectar diferentes redes por meio de uma abordagem de rede de serviços e permite que produtores de serviços e consumidores se comuniquem usando endereços IP internos de uma VPC.
Em um cluster do GKE que usa a infraestrutura do PSC, toda a comunicação entre o plano de controle e os nós do cluster 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 na 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 está localizado inteiramente na 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 os 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 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 é compatível com endereços IP internos em URLs para webhooks que você configurar. Se você tiver um webhook com um endereço IP interno no URL, siga estas etapas para mitigar essa incompatibilidade:
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 detectando na porta 3000:
apiVersion: v1 kind: Service metadata: name: <service-name> spec: clusterIP: None ports: - port: 3000 targetPort: 3000Crie um endpoint correspondente para o destino necessário. Por exemplo, se o webhook usar o endereço IP interno
10.0.0.1no URL, crie o seguinte endpoint:apiVersion: v1 kind: Endpoints metadata: name: <service-name> subsets: - addresses: - ip: 10.0.0.1 ports: - port: 3000Atualize 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: 3000No exemplo anterior, o webhook tem um caminho de
/validatee detecta na porta 3000.Verifique o webhook: confirme se o webhook pode continuar recebendo solicitações do servidor de API e se pode aprovar, rejeitar ou modificar a solicitação com base em uma lógica personalizada. Se você receber um erro ao verificar o webhook, talvez seja necessário criar um novo certificado e, em seguida, 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 usando o 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 de 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, 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 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 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. Como 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 aos nós em clusters ativados para PSC. É possível 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
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 o acesso apenas de endereços IP reservados pelo Google (para fins de 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 do Google Cloud , do Cloud Run ou do Cloud Run functions com IPs externos do Google Cloud .
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 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, 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
peeringNameestá vazio ou não existe. - O campo
privateEndpointtem 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. Você pode atualizar essa configuração e ativar os nós particulares depois da criação do cluster.
A seguir
- Saiba como personalizar o isolamento de rede no GKE.