Container Service for Kubernetes (ACK) integra o networking do Kubernetes aos serviços de rede da Alibaba Cloud para oferecer redes de contêineres estáveis e de alto desempenho. A solução abrange plug-ins CNI, Services, Ingresses e descoberta de serviços baseada em DNS.
Plug-ins CNI
O Kubernetes utiliza plug-ins CNI para habilitar e padronizar a rede de contêineres:
Os pods entram na rede de contêineres durante a criação e saem após a exclusão.
Cada pod recebe um endereço IP exclusivo.
Os pods podem se comunicar com endpoints dentro e fora do cluster.
Os plug-ins CNI implementam a rede de contêineres. O plug-in CNI escolhido determina a alocação de IPs dos pods, o uso de redes overlay, o encaminhamento de tráfego interno e o controle de acesso aos pods. Entre os plug-ins CNI open-source mais conhecidos estão Calico, Flannel e Cilium.
O ACK oferece dois plug-ins CNI — Terway e Flannel — com conjuntos de recursos distintos. Consulte Terway vs. Flannel CNI plugins para escolha entre eles durante a criação do cluster.
Não é possível alterar o plug-in de rede de um cluster após a criação.
Terway
O Terway é um plug-in CNI desenvolvido pela Alibaba Cloud. Ele atribui elastic network interfaces (ENIs) das instâncias ECS aos pods nos clusters ACK. Essa abordagem conecta os pods diretamente à Virtual Private Cloud (VPC) sem tunelamento (como VXLAN), melhorando a eficiência da rede. O Terway é ideal para clusters de grande escala com altos requisitos de desempenho de rede e controle de acesso.
Ao criar um cluster ACK com Terway, escolha entre o modo ENI inclusivo e ENI exclusivo:
Alocação de IP: No modo ENI exclusivo, cada pod obtém uma ENI dedicada para garantir desempenho de rede ideal. Já no modo ENI inclusivo, os pods compartilham ENIs, o que aumenta a densidade de pods por nó.
Aceleração de rede: O modo ENI inclusivo suporta aceleração DataPath V2. Quando ativada, o Terway usa um caminho de encaminhamento diferente para acelerar a comunicação.
Controle de acesso: Ambos os modos suportam endereços IP fixos, grupos de segurança separados e vSwitches para pods. Além disso, o modo ENI exclusivo suporta políticas de rede do Kubernetes.
Flannel
O Flannel é um plug-in CNI open-source que usa virtualização de rede (como VXLAN) para construir uma rede overlay para pods. Embora seja fácil de configure, oferece desempenho de rede inferior devido à sobrecarga de NAT e controle de acesso mais limitado em comparação ao Terway. O Flannel suporta clusters com até 1.000 nós e é adequado para cenários com baixos requisitos de desempenho de rede ou que exigem configuração rápida de cluster.
Consulte Terway vs. Flannel CNI plugins.
Services
Os pods são efêmeros no Kubernetes; portanto, seus recursos de rede mudam quando eles são destruídos ou substituídos. Um Service fornece um ponto de entrada estável para um grupo de pods com balanceamento de carga integrado:
Um Service seleciona pods por rótulo e mapeia seu endereço IP e porta para os endereços IP e portas dos pods.
Quando os pods de backend mudam, o Service atualiza automaticamente suas regras de encaminhamento.
O ACK suporta Services do tipo ClusterIP, NodePort, LoadBalancer, Headless e ExternalName para acesso interno ao cluster, externo e via internet. Consulte Service management.
Ingresses
Diferentemente dos Services, que fornecem balanceamento de carga na camada 4, os Ingresses gerenciam o acesso externo na camada 7 com um ponto de entrada centralizado. Eles roteiam solicitações para diferentes Services por nome de domínio ou caminho. Consulte Ingress management.
Descoberta de serviços baseada em DNS
O ACK resolve nomes de Service para endereços IP do cluster por meio de DNS. Isso permite o acesso às aplicações por nome de domínio, independentemente dos endereços IP ou ambientes de implantação. Consulte DNS-based service discovery.