Esta página disponibiliza uma visão geral das funções do GKE Dataplane V2 e como ele funciona.
Antes de ler esta página, conheça a rede nos clusters do GKE.
Visão geral do GKE Dataplane V2
O GKE Dataplane V2 é um plano de dados otimizado para a rede do Kubernetes. O GKE Dataplane V2 oferece:
- Experiência do usuário consistente na rede.
- visibilidade em tempo real da atividade da rede;
- arquitetura mais simples que facilita o gerenciamento e a solução de problemas de clusters.
O GKE Dataplane V2 é ativado por padrão para todos os novos clusters do Autopilot.
Como o GKE Dataplane V2 funciona
O GKE Dataplane V2 é implementado usando o eBPF.
À medida que os pacotes chegam a um nó do GKE, os programas eBPF instalados no kernel decidem como rotear e processar os pacotes. Ao contrário do processamento de pacotes
com iptables
, os programas eBPF podem usar metadados específicos do Kubernetes no pacote. Isso permite que o GKE Dataplane V2 processe pacotes de rede no kernel com mais eficiência e relate ações anotadas de volta ao espaço do usuário para geração de registros.
O diagrama a seguir mostra o caminho de um pacote ao longo de um nó usando o GKE Dataplane V2:
O GKE implanta o controlador do GKE Dataplane V2 como um DaemonSet chamado anetd
em cada nó no cluster. anetd
interpreta objetos do Kubernetes
e programa topologias de rede no eBPF. Os pods anetd
são executados no
namespace kube-system
.
GKE Dataplane V2 e NetworkPolicy
O GKE Dataplane V2 é implementado usando o Cilium. O plano de dados legado do GKE é implementado usando o Calico.
Ambas as tecnologias gerenciam o NetworkPolicy do Kubernetes.
O Cilium usa o eBPF e a interface de rede de contêiner (CNI, na sigla em inglês) do Calico usa a iptables
no kernel do Linux.
Vantagens do GKE Dataplane V2
Escalonabilidade
O GKE Dataplane V2 tem características de escalonabilidade diferentes do plano de dados legado.
Para versões do GKE em que o GKE Dataplane V2
não usa kube-proxy
e não depende do iptables
para roteamento de serviço, o GKE remove
alguns gargalos relacionados ao iptables
, como o número de Serviços.
O GKE Dataplane V2 depende de mapas eBPF limitados a 260.000 endpoints em todos os serviços.
Segurança
A NetworkPolicy do Kubernetes está sempre ativada em clusters com o GKE Dataplane V2. Não é preciso instalar e gerenciar complementos de software de terceiros, como o Calico, para aplicar a política de rede.
Operações
Quando você cria um cluster com o GKE Dataplane V2, a geração de registros de política de rede é integrada. Configure a CRD da geração de registros no cluster para ver quando as conexões são permitidas e negadas pelos pods.
Consistência
O GKE Dataplane V2 oferece uma experiência de rede consistente.
Para mais informações, consulte Disponibilidade do GKE Dataplane V2.
Especificações técnicas do GKE Dataplane V2
O GKE Dataplane V2 aceita clusters com as seguintes especificações:
Especificação | GKE | GDC (somente software) no VMware | GDC (somente software) em bare metal |
---|---|---|---|
Número de nós por cluster | 7.500 | 500 | 500 |
Número de pods por cluster | 200.000 | 15.000 | 27.500 |
Número de pods por trás de um serviço | 10.000 | 1.000 | 1.000 |
Número de serviços de IP de cluster | 10.000 | 1.000 | 1.000 |
Número de serviços do LoadBalancer por cluster | 750 | 500 | 1.000 |
O GKE Dataplane V2 mantém um mapa de serviços para acompanhar quais serviços se referem a quais pods como back-ends. O número de back-ends de pods de cada serviço somado em todos os serviços precisa caber no mapa, que pode conter até 260.000 entradas. Se esse limite for excedido, talvez o cluster não funcione conforme o esperado.
Aumento do limite de nós para 7.500 na versão 1.31
A partir da versão 1.31 do Kubernetes, o limite de 5.000 nós por cluster do GKE Dataplane V2 foi aumentado para 7.500. As condições impostas anteriormente aos clusters (limite de 5.000 nós) ainda se aplicam.
Aumento do limite de nós para 5.000 na versão 1.23
A partir da versão 1.23 do Kubernetes, o limite de 500 nós por cluster do GKE Dataplane V2 foi elevado para 5.000, com as seguintes condições adicionais impostas aos clusters:
- Clusters particulares ou públicos que usam o Private Service Connect. Para verificar se o cluster usa o Private Service Connect, consulte Clusters públicos com o Private Service Connect.
- Somente clusters regionais
- Somente os clusters criados com o GKE versão 1.23 ou posterior têm um limite de 5.000 nós elevados. Para clusters criados com versões anteriores do GKE, pode ser necessário aumentar a cota de tamanho do cluster. Entre em contato com o suporte para receber ajuda.
- Os clusters que usam CRDs do Cilium (CiliumNetworkPolicy e CiliumClusterwideNetworkPolicy) não podem ser escalonados para 5.000 nós.
Serviços LoadBalancer no Google Distributed Cloud
O número de serviços LoadBalancer aceitos no Google Distributed Cloud depende as modo do balanceador de carga que está sendo usado. O Google Distributed Cloud oferece suporte a 500 serviços LoadBalancer ao usar modo de balanceamento de carga em pacote (Seesaw) e 250 ao usar a carga integrada de balanceamento de carga com F5. Para mais informações, consulte Escalonabilidade.
Limitações
O GKE Dataplane V2 tem as seguintes limitações:
- O GKE Dataplane V2 só pode ser ativado ao criar um novo cluster. Os clusters atuais não podem ser atualizados para usar o GKE Dataplane V2.
- Em versões do GKE anteriores à 1.20.12-gke.500, se você ativar o GKE Dataplane V2 com o DNSCache NodeLocal, não será possível configurar pods com
dnsPolicy: ClusterFirstWithHostNet
. seus pods vão passar por erros de resolução de DNS. - A partir da versão 1.21.5-gke.1300 do GKE, o GKE Dataplane V2 não oferece suporte às APIs CRD CiliumNetworkPolicy ou CiliumClusterwideNetworkPolicy. A partir das versões 1.28.6-gke.1095000 e 1.29.1-gke.1016000 do GKE, é possível ativar o CiliumClusterwideNetworkPolicy em clusters novos ou atuais.
- Os balanceadores de carga de rede de passagem internos que foram criados manualmente e associados a um serviço do tipo NodePort não são compatíveis.
- Como o GKE Dataplane V2 otimiza o processamento de pacotes do kernel eBPF usando eBPF, o desempenho do seu pod poderá ser afetado se você tiver cargas de trabalho com um alto desligamento de pods. O foco principal do GKE Dataplane V2 é alcançar o eBPF ideal.
- Há um problema conhecido com serviços de vários clusters com várias portas (TCP/UDP) no GKE Dataplane V2. Para mais informações, consulte Serviços MCS com várias portas.
- O GKE Dataplane V2 usa
cilium
em vez dekube-proxy
para implementar os serviços do Kubernetes. Okube-proxy
é mantido e desenvolvido pela comunidade do Kubernetes. Portanto, é mais provável que novos recursos para serviços sejam implementados emkube-proxy
antes de serem implementados emcilium
para o GKE Dataplane V2. Um exemplo de recurso para serviços que foi implementado primeiro emkube-proxy
é o KEP-1669: endpoints de encerramento de proxy. - Para serviços NodePort que executam a versão 1.25 ou anterior usando intervalos SNAT e
PUPI padrão, adicione o intervalo de PUPI dos pods em
nonMasqueradeCIDRs
no ConfigMapip-masq-agent
para evitar problemas de conectividade. - Em alguns casos, os pods do agente do GKE Dataplane V2 (
anetd
) podem consumir uma quantidade significativa de recursos de CPU, até duas ou três vCPUs por instância. Isso ocorre quando há um grande volume de conexões TCP abertas e fechadas rapidamente no nó. Para atenuar esse problema, recomendamos a implementação de sinais de atividade para chamadas HTTP e o pool de conexões para as cargas de trabalho relevantes. - Os clusters do GKE Dataplane V2 que executam a versão 1.27 ou anterior do plano de controle não são compatíveis com o campo
.spec.internalTrafficPolicy
do serviço. A política de tráfego interno efetiva de um serviço éCluster
. Os back-ends em qualquer nó são considerados como candidatos para resolução de serviço. Para mais informações sobre o campo, consulte Política de tráfego interno do serviço.
GKE Dataplane V2 e kube-proxy
O GKE Dataplane V2 não usa o kube-proxy, exceto nos pools de nós do Windows Server nas versões 1.25 e anteriores do GKE.
Aplicação da política de rede sem o GKE Dataplane V2
Consulte Como usar a aplicação de política de rede para instruções sobre como ativar a aplicação de política de rede em clusters que não usam o GKE Dataplane V2.
A seguir
- Leia Como usar o GKE Dataplane V2.
- Saiba mais sobre a observabilidade do GKE Dataplane V2.
- Saiba como usar a geração de registros de políticas de rede.