O Terway é um plug-in CNI open-source para VPC da Alibaba Cloud compatível com políticas de rede padrão do Kubernetes para definir regras de acesso entre containers.
Antes de começar
Leia este tópico para entender o funcionamento do Terway antes de usar o plug-in de rede de container Terway.
Primeiro, leia Visão geral de rede e Plug-ins CNI Terway vs. Flannel para compreender os conceitos básicos dos plug-ins de rede de container e escolha um deles.
Planeje os blocos CIDR antes de criar um cluster. Para mais informações, consulte Planejamento de rede para cluster gerenciado ACK.
Faturamento
O plug-in Terway é gratuito. No entanto, o Terway implanta pods em cada nó, consumindo uma pequena quantidade de recursos. Para detalhes sobre o faturamento dos serviços de nuvem do ACK, consulte Custos de recursos de nuvem.
Importante
O arquivo de configuração do Terway eni-config contém parâmetros críticos do sistema. Modificar ou excluir campos não explicitamente permitidos para configuração pelo usuário pode causar interrupções na rede ou impedir a criação de pods. Para obter informações sobre os parâmetros personalizáveis, consulte Personalizar parâmetros do Terway.
O componente Terway utiliza CRDs para rastrear o status dos recursos. Não modifique manualmente esses recursos do sistema. Alterações não autorizadas podem causar interrupções na rede ou impedir a criação de pods.
|
Nome do recurso |
Tipo de recurso |
Operações de CRD pelo usuário |
Operações de CR pelo usuário |
|
podnetworkings.network.alibabacloud.com |
Recursos do usuário |
Não |
Sim |
|
podenis.network.alibabacloud.com |
Recursos do sistema |
Não |
Não |
|
networkinterfaces.network.alibabacloud.com |
Recursos do sistema |
Não |
Não |
|
nodes.network.alibabacloud.com |
Recursos do sistema |
Não |
Não |
|
noderuntimes.network.alibabacloud.com |
Recursos do sistema |
Não |
Não |
|
*.cilium.io |
Recursos do sistema |
Não |
Não |
|
*.crd.projectcalico.org |
Recursos do sistema |
Não |
Não |
Número máximo de pods por nó
Ao usar o plug-in de rede Terway, o número máximo de pods que um nó pode executar depende da quantidade de interfaces de rede elásticas (ENIs) suportadas pelo tipo de instância ECS correspondente. O Terway impõe um limite mínimo de pods que cada nó deve atender para ingressar no cluster.
Modo Terway | Limite de pods | Exemplo | Contagem de pods com IP estático |
modo ENI compartilhada | (Número de ENIs suportadas pelo tipo de instância ECS - 1) × Número de endereços IP privados por ENI. (EniQuantity - 1) × EniPrivateIpAddressQuantity Nota Um nó deve suportar mais de 11 pods para ingressar no cluster. | Por exemplo, considere uma instância do tipo ecs.g7.4xlarge da família de instâncias de uso geral g7. Esse tipo de instância suporta 8 ENIs, e cada ENI suporta 30 endereços IP privados. O número máximo de pods por nó é calculado como (8 - 1) × 30 = 210 pods. Importante O número máximo de pods que utilizam as ENIs do nó é fixo conforme o tipo de instância. Modificar o parâmetro | 0 |
modo ENI compartilhada + Trunk ENI | Máximo de pods Trunk por nó: Total de interfaces de rede para o tipo de instância ECS - Número de ENIs suportadas pelo tipo de instância ECS. EniTotalQuantity - EniQuantity | ||
modo ENI exclusiva | Instância ECS: Número de ENIs suportadas pelo tipo de instância ECS - 1. EniQuantity - 1 Instância Lingjun: Cota de ENI Lingjun - 1. LeniQuota - 1 Nota Um nó deve suportar mais de 6 pods para ingressar no cluster. | Por exemplo, uma instância ECS do tipo ecs.g7.4xlarge suporta 8 ENIs. O número máximo de pods por nó é (8 - 1) = 7 pods. | Número de ENIs suportadas pelo tipo de instância ECS - 1. EniQuantity - 1 Nota Instâncias Lingjun não são suportadas. |
No Terway v1.11.0 e versões posteriores, você pode selecionar o modo ENI exclusiva ou o modo ENI compartilhada para um pool de nós. Pools de nós que utilizam modos diferentes podem coexistir no mesmo cluster. Para mais informações, consulte Notas de versão do Terway.
Verificar contagem de pods suportados
Método 1: Ao criar um pool de nós, verifique a coluna Terway Compatibility (Supported Pods) na seção Instance Type para visualizar o número de pods suportados.
-
Método 2: Obtenha os valores necessários usando um dos métodos abaixo e calcule manualmente o número de pods que o tipo de instância ECS suporta.
Consulte a documentação da família de instâncias para encontrar o número máximo de interfaces de rede elásticas que uma instância ECS suporta.
Use o OpenAPI Explorer. Especifique o tipo de instância de um nó existente no parâmetro
InstanceTypese clique em Initiate Call. Na resposta,EniQuantityrepresenta o número máximo de interfaces de rede elásticas suportadas pelo tipo de instância,EniPrivateIpAddressQuantityindica a quantidade de endereços IP privados por ENI eEniTotalQuantitycorresponde ao total de interfaces de rede suportadas pelo tipo de instância.
Instalar o plug-in de rede Terway
Instale o plug-in de rede Terway durante a criação do cluster. Não é possível alterar o tipo de plug-in de rede de um cluster existente.
Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique em Create Kubernetes Cluster.
-
Configure os principais parâmetros de rede para o plug-in de rede Terway. Para outros parâmetros de criação de cluster, consulte Criar um cluster gerenciado ACK.
Parâmetro
Descrição
IPv6 Dual-stack
Selecione Enable para criar um cluster dual-stack compatível com endereços IPv4 e IPv6.
Suportado apenas para Kubernetes 1.22 ou posterior, exclusivamente com Terway, e não pode ser usado em conjunto com eRDMA.
O cluster suporta os protocolos IPv4 e IPv6, mas a comunicação entre os nós de trabalho e o plano de controle ainda utiliza endereços IPv4. Garanta o seguinte:
A VPC do cluster deve suportar dual-stack IPv6.
Ao usar o Terway no modo ENI compartilhada, o tipo de instância do nó deve suportar IPv6 e ter o mesmo número de endereços IPv4 e IPv6 atribuíveis.
VPC
A VPC destinada ao cluster.
Network Plug-in
Selecione Terway.
DataPath V2
Selecione esta opção para ativar o modo de aceleração DataPath V2. Neste modo, o Terway utiliza um caminho de encaminhamento de tráfego diferente do modo padrão de ENI compartilhada para fornecer aceleração de rede. Para mais informações, consulte Melhores práticas para Terway com Datapath V2.
NotaPara novos clusters executando Kubernetes 1.34 ou posterior com DataPath V2, o kube-proxy não é mais executado nos nós do Terway.
Este modo inclui suporte integrado para portmap, eliminando a necessidade de configurar o plug-in portmap. Para mais informações, consulte Configurar uma cadeia CNI personalizada.
O DataPath V2 é suportado apenas nas seguintes imagens de sistema operacional e requer kernel Linux 5,10 ou superior:
Alibaba Cloud Linux 4
Alibaba Cloud Linux 3 (todas as versões)
ContainerOS
Ubuntu
Quando ativado, estima-se que o container de política do Terway em cada nó de trabalho consuma 0,5 núcleos de CPU e 512 MB de memória adicionais. Esse consumo de recursos aumenta conforme o tamanho do cluster. Na configuração padrão do Terway, o limite de CPU para o container de política é de 1 núcleo, sem limite de memória.
No modo DataPath V2, as informações de rastreamento de conexões de rede de container (conntrack) são armazenadas em um mapa eBPF. Assim como o mecanismo conntrack nativo do Linux, o conntrack eBPF utiliza um algoritmo LRU (Least Recently Used). Quando o mapa está cheio, os registros de conexão mais antigos são removidos para liberar espaço para novos. Configure os parâmetros relevantes com base na sua carga de trabalho para evitar a ultrapassagem do limite de conexões. Para mais informações, consulte Otimizar configurações de conntrack no modo Terway.
Suporte a NetworkPolicy
Selecione esta opção para ativar o
NetworkPolicynativo do Kubernetes.NotaA partir do Terway v1.9.2, o NetworkPolicy para novos clusters é implementado via eBPF, e o recurso DataPath V2 é ativado para o plano de dados.
O recurso que permite gerenciar recursos
NetworkPolicyno console está em preview público. Para usar esse recurso, envie uma solicitação no Quota Center console.
Support for ENI Trunking
Selecione esta opção para ativar o modo Trunk ENI. Isso permite atribuir um endereço IP estático, um vSwitch independente e um grupo de segurança separado para cada pod.
NotaVocê pode ativar o Trunk ENI para clusters gerenciados ACK sem enviar uma solicitação. Caso deseje ativar o Trunk ENI para um cluster dedicado ACK, envie primeiro uma solicitação no Quota Center console.
Para clusters gerenciados ACK recém-criados que executam Kubernetes 1.31 ou posterior, o recurso Trunk ENI é ativado automaticamente. Não é necessário selecioná-lo manualmente.
vSwitch
Os vSwitches para os nós do cluster. Para garantir alta disponibilidade, recomenda-se selecionar vSwitches de pelo menos três zonas de disponibilidade diferentes.
Pod vSwitch
Os vSwitches destinados aos pods. Podem ser os mesmos utilizados pelos nós.
Service CIDR
O bloco CIDR para Serviços do Kubernetes. Este bloco CIDR não pode se sobrepor ao bloco CIDR do nó nem ao bloco CIDR do pod.
IPv6 Service CIDR Block
Este parâmetro só pode ser configurado após a ativação do dual-stack IPv6.
Modos de operação do Terway
Este tópico compara os modos do Terway e explica seu funcionamento.
Modo ENI compartilhada e modo ENI exclusiva
O Terway oferece dois modos para atribuição de endereços IP aos pods: modo ENI compartilhada e modo ENI exclusiva.
No Terway v1.11.0 e versões posteriores, é possível selecionar o modo ENI compartilhada ou o modo ENI exclusiva para um pool de nós. Essa opção não está mais disponível no nível do cluster durante a criação.
O sistema operacional (SO) do nó utiliza a ENI primária. O Terway gerencia as ENIs restantes para configurar a rede dos pods. Não configure essas ENIs manualmente. Se precisar gerenciar algumas ENIs por conta própria, consulte Configurar um filtro para ENIs.
Item | Modo ENI compartilhada | Modo ENI exclusiva | |
Gerenciamento de endereços IP dos pods | Alocação de ENI | Vários pods compartilham uma única ENI. | Cada pod recebe uma ENI dedicada em seu nó. |
Densidade de implantação de pods | Alta densidade, suportando centenas de pods em um único nó. | Baixa densidade. Um nó típico suporta apenas alguns pods. | |
Arquitetura de rede | |||
Caminho de dados | Quando um pod se comunica com outros pods ou é acessado como backend de Serviço, o tráfego passa pela pilha de rede do nó. | Quando um pod acessa um Serviço, o tráfego ainda passa pela pilha de rede do SO do nó. Contudo, na comunicação pod-a-pod ou quando um pod atua como backend de Serviço, o tráfego ignora a pilha de rede do nó ao usar diretamente a ENI anexada, melhorando o desempenho. | |
Cenários | Cargas de trabalho gerais do Kubernetes. | Oferece desempenho de rede comparável ao de máquinas virtuais, sendo ideal para aplicações que exigem alto throughput de rede ou baixa latência. | |
Aceleração de rede | Suporta DataPath V2 para aceleração de rede. Para mais informações, consulte Aceleração de rede. | Aceleração de rede não é suportada. Este modo já oferece excelente desempenho de rede, pois cada pod possui uma ENI dedicada. | |
Suporte a NetworkPolicy | Suporta | Não suporta | |
Configuração de rede no nível do nó | Suportado. Para mais informações, consulte Configuração de rede no nível do nó. | Suportado. Para mais informações, consulte Configuração de rede no nível do nó. | |
Controle de acesso | Com o Trunk ENI ativado, é possível configurar um endereço IP estático, um vSwitch separado e um grupo de segurança distinto para cada pod. Para mais informações, consulte Configurar endereço IP estático, vSwitch separado e grupo de segurança para um pod. | Permite configurar um endereço IP estático, um vSwitch separado e um grupo de segurança distinto para cada pod. | |
Aceleração de rede
No modo ENI compartilhada, é possível ativar a aceleração de rede. Isso utiliza um caminho de encaminhamento de tráfego diferente do modo padrão para alcançar maior desempenho. Atualmente, o Terway suporta o modo de aceleração DataPath V2. A seção a seguir descreve seus recursos.
O DataPath V2 é uma versão aprimorada do antigo modo de aceleração IPvlan+eBPF. No Terway V1.8.0 e versões posteriores, o DataPath V2 é o único modo de aceleração disponível ao criar um cluster e instalar o plug-in Terway.
Os modos de aceleração DataPath V2 e IPvlan+eBPF aplicam-se apenas a pools de nós no modo ENI compartilhada e não afetam pools de nós no modo ENI exclusiva.
Recursos do DataPath V2 | Descrição |
Versões aplicáveis do Terway | Clusters criados com Terway v1.8.0 ou posterior. |
Arquitetura de rede | |
Caminho de dados acelerado |
|
Otimização de desempenho |
|
Uso | Ao criar um cluster, defina Network Plug-in como Terway e selecione a opção DataPath V2. |
Observações de uso |
|
O modo de aceleração IPvlan+eBPF pode estar em uso em clusters mais antigos. Seus recursos estão descritos abaixo.
Controle de acesso
O Terway oferece gerenciamento granular de tráfego. No modo ENI compartilhada, isso é alcançado via NetworkPolicy e a opção Trunk ENI. O modo ENI exclusiva também fornece capacidades de controle de tráfego.
NetworkPolicy
Pools de nós no modo ENI exclusiva não suportam
NetworkPolicy.-
Pools de nós no modo ENI compartilhada suportam o
NetworkPolicynativo do Kubernetes, permitindo controlar o tráfego de rede entre pods por meio de regras definidas pelo usuário.Ao criar um cluster, ative o
NetworkPolicyselecionando Terway como Network Plug-in e marcando a opção NetworkPolicy support. Para mais informações, consulte Usar políticas de rede em clusters ACK.NotaO recurso que permite gerenciar recursos
NetworkPolicyno console está em preview público. Para usar esse recurso, envie uma solicitação no Quota Center console.
IP estático, vSwitch e grupo de segurança
Pools de nós no modo ENI exclusiva suportam nativamente a atribuição de um endereço IP estático, um vSwitch separado e um grupo de segurança distinto para cada pod. Isso possibilita gerenciamento granular de tráfego, isolamento de rede, configuração de políticas e gestão de endereços IP.
-
Para pools de nós no modo ENI compartilhada, o recurso opcional Trunk ENI permite configurar um endereço IP estático, um vSwitch separado e um grupo de segurança distinto para cada pod.
Para ativar esse recurso, defina Network Plug-in como Terway e selecione a opção Support for ENI Trunking durante a criação do cluster. Para mais informações, consulte Configurar endereço IP estático, vSwitch separado e grupo de segurança para um pod.
NotaVocê pode ativar o Trunk ENI para clusters gerenciados ACK sem enviar uma solicitação. Caso deseje ativar o Trunk ENI para um cluster dedicado ACK, envie primeiro uma solicitação no Quota Center console.
Para clusters gerenciados ACK recém-criados que executam Kubernetes 1.31 ou posterior, o recurso Trunk ENI é ativado automaticamente. Não é necessário selecioná-lo manualmente.
Após ativar o modo Trunk ENI, os componentes terway-eniip e terway-controlplane são instalados.
Limites de dimensionamento
O Terway chama a OpenAPI de produtos de nuvem para gerenciar interfaces de rede e endereços IP dos nós. Para limites de uso dessas operações, consulte a documentação de cada produto de nuvem.
modo ENI compartilhada: Até 500 nós podem ser alocados simultaneamente.
modo ENI exclusiva/TrunkENI: Até 100 pods podem ser alocados simultaneamente.
Essas cotas são fixas.
Configuração do plano de dados
O plano de dados do Terway depende da sequência precisa e da integridade de suas configurações no nível do kernel. Qualquer modificação não coordenada de hooks IP rule, IP route ou eBPF por componentes externos — incluindo ajustes de prioridade, substituição de regras ou descarregamento de programas — pode causar falhas graves, como interrupções na rede dos pods, ineficácia das políticas de rede e redirecionamento não intencional de tráfego. Valide rigorosamente todos os componentes de terceiros antes da integração para evitar conflitos.
Regras de filtro TC
|
Interface |
Direção |
Programa |
Prioridade |
Função |
|
ethx |
toContainer |
VLAN Untag |
20000 |
Remover tag VLAN |
|
ethx |
toContainer |
cil_from_netdev |
25000 |
Política de svc/rede Cilium |
|
veth |
toContainer |
cil_to_container |
25000 |
Política de svc/rede Cilium |
|
veth |
fromContainer |
cil_from_container |
25000 |
Política de svc/rede Cilium |
|
ethx |
fromContainer |
cil_to_netdev |
25000 |
Política de svc/rede Cilium |
|
ethx |
fromContainer |
VLAN Tag |
50001 |
Adicionar tag VLAN |
Regras de IP
|
Direção |
Prioridade |
Tabela de roteamento |
|
toContainer |
512 |
1000 + linkIndex (índice da ENI) |
|
fromContainer |
512 |
1000 + linkIndex (índice da ENI) |
FAQ
Identificação dos modos de ENI do Terway
Troca de plug-in de rede
O plug-in é definido na criação do cluster. Para trocá-lo, crie um novo cluster e migre as cargas de trabalho.