Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Configure exclusive ENI mode for a node pool

Última atualização: Jun 27, 2026

Atribua uma ENI exclusiva a cada pod para obter alto throughput, latência ultrabaixa e suporte a multicast.

Limitações

  • Instâncias ECS exigem Terway v1.11.0 ou posterior; instâncias Lingjun exigem v1.14.3 ou posterior. Consulte Terway para atualizar.

  • Com o dual-stack ativado, a adição de nós segue as mesmas restrições de tipo de instância do modo de ENI compartilhada: o número de endereços IPv4 (primários e secundários) deve ser igual ao número de endereços IPv6. Consulte família de instâncias para verifique as quantidades suportadas.

  • Instâncias Lingjun não oferecem suporte a dual-stack.

  • Pods com ENI exclusiva atribuída não suportam aceleração de rede eBPF nem Kubernetes NetworkPolicy.

  • O modo de ENI exclusiva requer novos nós. Nós existentes adicionados ao pool não utilizam suas ENIs anexadas.

  • Esse modo aplica-se apenas a novos nós. Não é possível alternar entre os modos de ENI compartilhada e exclusiva após a criação do node pool.

  • Não é possível configure uma cadeia CNI personalizada.

Configure a rede de contêineres no nível do node pool

O Terway oferece a ENI exclusiva como modo de rede no nível do node pool. Consulte Modo de ENI compartilhada e modo de ENI exclusiva.

1. Planejar o node pool de ENI exclusiva

  • No modo de ENI exclusiva, cada nó suporta menos pods e requer mais de seis ENIs. Consulte família de instâncias para ver a quantidade de ENIs por tipo de instância.

  • Planeje os vSwitches e grupos de segurança para seus pods.

O Terway suporta os seguintes métodos de configuração, em ordem decrescente de prioridade:

2. Crie um node pool de ENI exclusiva e verifique a configuração

  1. Siga as instruções em Crie e gerencie node pools para crie um node pool e adicione o rótulo k8s.aliyun.com/exclusive-mode-eni-type: eniOnly aos nós.

    Adicione também um taint para impedir que pods sem necessidade de ENI exclusiva sejam agendados neste pool.

    Importante

    Adicione o rótulo durante a criação do node pool. Nós existentes não podem alternar para o modo de ENI exclusiva. Se o rótulo estiver incorreto, exclua e recrie o node pool.

  2. Consulte os recursos alocáveis em um nó para confirme se o modo de ENI exclusiva está ativado:

    kubectl describe node <node-name> 

    Saída esperada:

    Capacity:
      aliyun/eni:         7
      cpu:                16
      ephemeral-storage:  123460788Ki
      hugepages-1Gi:      0
      hugepages-2Mi:      0
      memory:             31555380Ki
      pods:               213
    Allocatable:
      aliyun/eni:         7
      cpu:                15890m
      ephemeral-storage:  113781462033
      hugepages-1Gi:      0
      hugepages-2Mi:      0
      memory:             28587828Ki
      pods:               213

    O campo aliyun/eni confirma que o modo de ENI exclusiva está habilitado.

3. Agendar pods no node pool de ENI exclusiva

Use NodeAffinity ou um recurso personalizado PodNetworking para agendar pods no node pool de ENI exclusiva.

  • NodeAffinity: Não suporta configurações no nível do pod, como IP fixo, vSwitch independente ou grupo de segurança.

  • PodNetworking: Oferece suporte a configurações de vSwitch, grupo de segurança e IP fixo no nível do pod. Consulte Configure um endereço IP fixo, um vSwitch independente e um grupo de segurança para um pod.

    Defina eniType como ENI no campo eniOptions para agendar pods no node pool de ENI exclusiva. Exemplo:

    apiVersion: network.alibabacloud.com/v1beta1
    kind: PodNetworking
    metadata:
      name: enionly
    spec:
      eniOptions:
        eniType: ENI
      allocationType:
        type: Elastic
      selector:
        podSelector:
          matchLabels:
            network: enionly

Perguntas frequentes

Verifique a ENI exclusiva de um pod

O Terway cria automaticamente um recurso PodENI com o mesmo nome e namespace do pod para registrar sua configuração de rede.

Consulte o recurso:

kubectl get podeni nginx-9d557694f-rcdzs -oyaml

Saída esperada:

apiVersion: network.alibabacloud.com/v1beta1
kind: PodENI
metadata:
  annotations:
    k8s.aliyun.com/pod-uid: 05590939-fc51-47ab-a204-3dd187233bca
  creationTimestamp: "2024-09-13T08:09:27Z"
  finalizers:
  - pod-eni
  generation: 1
  labels:
    k8s.aliyun.com/node: cn-hangzhou.172.XX.XX.25
  name: example-9d557694f-rcdzs
  namespace: default
  resourceVersion: "1131123"
spec:
  allocations:
  - allocationType:
      type: Elastic
    eni:
      attachmentOptions: {}
      id: eni-xxxx
      mac: 00:16:3e:37:xx:xx
      securityGroupIDs:
      - sg-xxxx
      vSwitchID: vsw-xxxx
      zone: cn-hangzhou-j
    ipv4: 172.16.0.30
    ipv4CIDR: 172.16.0.0/24
    ipv6: 2408:4005:xxxx:xxxx:xxxx:xxxx:xxxx:9ad4
    ipv6CIDR: 2408:4005:39c:xxxx::/64
  zone: cn-hangzhou-j
status:
  eniInfos:
    eni-xxxx:
      id: eni-xxxx
      status: Bind
      type: Secondary
  instanceID: i-xxxx
  phase: Bind