Nesta página, explicamos como usar o Dataplane V2 com o Google Kubernetes Engine (GKE).
Sobre o Dataplane V2
O Dataplane V2 é baseado no eBPF e permite que os nós do Linux processem pacotes de rede de maneira flexível e eficiente no kernel. Ele inclui a aplicação de políticas de rede integradas e registro de políticas de rede sem nenhum complemento de terceiros.
Para usar a geração de registros de políticas de rede, ative o Dataplane V2 no cluster do GKE. Para instruções, consulte a seção Como criar um cluster com o Dataplane V2.
Limitações
- O Dataplane V2 só pode ser ativado em novos clusters. Os clusters atuais não podem ser atualizados para usar o Dataplane V2.
- Os nós do Windows não são compatíveis com o Dataplane V2.
Limitações Beta
- Ainda que o Dataplane V2 esteja na versão Beta, a compatibilidade com versões anteriores não é garantida. Poderá ser necessário recriar um cluster usando o Dataplane V2 quando uma nova versão dele estiver disponível.
- Sabe-se que alguns recursos do Kubernetes e do GKE não funcionam na versão
Beta:
- Os serviços do Kubernetes que definem
ExternalTrafficPolicy:local
e têm o suporte de pods em execução comhostNetwork:true
não podem receber tráfego de clientes fora do cluster. - As políticas de rede do Kubernetes que usam
FromCIDR
com intervalos CIDR que selecionam alguns, mas nem todos os IPs de nó, não funcionam. - Alguns recursos, incluindo o DNSCache NodeLocal, não são compatíveis.
- Os serviços do Kubernetes que definem
- Não há uma interface do Console do Google Cloud para o Dataplane V2.
Como criar um cluster do GKE com o Dataplane V2
É possível ativar o Dataplane V2 ao criar novos clusters com o GKE 1.17.9 e posterior.
gcloud
Para criar um novo cluster com o Dataplane v2, use o seguinte comando:
gcloud beta container clusters create cluster-name \ --enable-dataplane-v2 \ --enable-ip-alias \ --cluster-version version \ --release-channel channel-name \ {--region region-name | --zone zone-name}
Substitua:
- cluster-name: o nome do novo cluster;
- version: a versão do cluster, que precisa ser GKE 1.17.9 ou posterior.
- channel-name: um canal de lançamento que inclui a versão 1.17.9 ou posterior do GKE.
- region-name ou zone-name: o local do cluster. Esses argumentos são mutuamente exclusivos. Consulte Tipos de clusters para mais informações.
API
Para criar um novo cluster com o Dataplane V2, especifique o
campo datapathProvider
no
objeto networkConfig
em sua solicitação
create
do cluster.
No seguinte snippet JSON, mostramos a configuração necessária para ativar o Dataplane V2:
"cluster":{
"initialClusterVersion":"version",
"ipAllocationPolicy":{
"useIpAliases":true
},
"networkConfig":{
"datapathProvider":"ADVANCED_DATAPATH"
},
"releaseChannel":{
"channel":"channel-name"
}
}
Substitua:
- version: a versão do cluster, que precisa ser GKE 1.17.9 ou posterior.
- channel-name: um canal de lançamento que inclui a versão 1.17.9 ou posterior do GKE.
Solução de problemas
Verifique o estado dos pods do sistema:
kubectl -n kube-system get pods
Se o Dataplane V2 estiver em execução, você verá pods com o prefixo
anetd-
em execução no estadoHEALTHY
. Anetd é o controlador de rede do Dataplane V2.Se o problema for com a aplicação da política de serviços ou rede, verifique os registros do pod
anetd
:kubectl -n kube-system describe pod anetd-pod
kubectl -n kube-system logs anetd-pod
Substitua anetd-pod pelo nome de um pod
anetd
identificado anteriormente.Se a criação do pod falhar, verifique os registros do kubelet para dicas:
gcloud compute ssh node -- sudo journalctl -u kubelet
Substitua node pelo nome da instância de VM.
A seguir
- Use a geração de registros de política de rede para gravar quando as conexões com pods forem permitidas ou negadas pelas políticas de rede do cluster.