Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Configurar largura de banda IPv6 para internet em pods

Última atualização: Oct 14, 2026

Por padrão, os endereços IPv6 dos pods são acessíveis apenas dentro de uma Virtual Private Cloud (VPC). Para expor um pod pela internet pública IPv6, atribua um plano de largura de banda IPv6 para internet ao endereço IPv6 do pod e, opcionalmente, configure uma regra apenas de saída. O componente ack-extend-network-controller realiza ambas as operações por meio de anotações no pod, sem exigir alterações no código da aplicação.

Como funciona

Cada pod em um cluster ACK dual-stack recebe um endereço IPv6 da sua VPC. Quando você adiciona a anotação k8s.aliyun.com/ipv6-bandwidth a um pod, o controlador ipv6gw chama a OpenAPI do Alibaba Cloud para alocar um plano de largura de banda IPv6 para internet e associá-lo a esse endereço. O tráfego IPv6 de entrada e saída é então roteado diretamente pelo gateway IPv6.

Para permitir apenas tráfego de saída, adicione a anotação k8s.aliyun.com/ipv6-egress-only. Isso cria uma regra apenas de saída no gateway IPv6.

Pré-requisitos

Antes de começar, certifique-se de que possui:

Importante

Apenas alguns tipos de instância ECS suportam IPv6. Verifique se seus nós utilizam um tipo de instância compatível antes de prosseguir. Consulte Famílias de instâncias.

Limitações

  • Apenas nós ECS padrão: O componente ack-extend-network-controller suporta apenas nós ECS padrão e pods. Não há suporte para instâncias ECI ou ACS. Para esses tipos de instância, consulte Atribuir endereços IPv6 a pods ECI e Atribuir endereços IPv6 a pods ACS.

  • Cotas do gateway IPv6 se aplicam: Os limites de largura de banda e o número de entradas de configuração estão sujeitos às cotas do gateway IPv6. Consulte Limites.

Habilitar recursos do gateway IPv6

Etapa 1: Configurar permissões RAM

Conceda à função RAM do Worker as permissões necessárias para o controlador ipv6gw.

  1. Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Cluster Information.

  3. Na aba Basic Information, clique no link ao lado de Worker RAM Role.

  4. Crie uma política personalizada com o conteúdo a seguir. Para instruções, consulte Etapa 1: Criar uma política personalizada.

    {
      "Effect": "Allow",
      "Action": [
        "vpc:DescribeIpv6Addresses",
        "vpc:CreateIpv6EgressOnlyRule",
        "vpc:DeleteIpv6EgressOnlyRule",
        "vpc:DescribeIpv6EgressOnlyRules",
        "vpc:AllocateIpv6InternetBandwidth",
        "vpc:DeleteIpv6InternetBandwidth"
      ],
      "Resource": ["*"],
      "Condition": {}
    }
  5. Anexe a política personalizada à função RAM do Worker. Consulte Etapa 2: Conceder permissões à função RAM do Worker do cluster.

Etapa 2: Instalar e configurar o componente ack-extend-network-controller

Instale o ack-extend-network-controller no ACK Marketplace e ative o controlador ipv6gw. Para instruções de instalação, consulte Marketplace.

Use a configuração a seguir ao instalar o componente. Substitua os valores de exemplo pelo ID do cluster, região e ID da VPC reais.

clusterID: "c11ba338192xxxxxxx"          # Your cluster ID
regionID: "cn-hangzhou"                  # Your region ID
vpcID: "vpc-bp1rkq0zxxxxxx"              # Your VPC ID
enableControllers:
  - ipv6gw                               # Enable the IPv6 gateway controller
networkController:
  ipv6GatewayController:
    maxConcurrentReconciles: 10

credential:                              # For ACK managed and dedicated clusters, use RAM roles instead of AccessKey pairs
  accessKey: ""
  accessSecret: ""

Anotações de pod

Use as anotações a seguir para configurar a largura de banda IPv6 para internet e o comportamento de saída em um pod.

Annotation

Description

k8s.aliyun.com/ipv6-bandwidth

Public bandwidth in Mbps. Valid values: 1 to 5000. See AllocateIpv6InternetBandwidth.

Changes to the annotation do not take effect after the pod is created. Delete and recreate the pod to apply the changes.

k8s.aliyun.com/ipv6-internet-charge-type

Billing method. PayByBandwidth (default) or PayByTraffic. See AllocateIpv6InternetBandwidth.

Changes to the annotation do not take effect after the pod is created. Delete and recreate the pod to apply the changes.

k8s.aliyun.com/ipv6-egress-only

Create an egress-only rule. The rule is created whenever this annotation is present, regardless of its value. To disable the rule, remove the annotation.

Changes to the annotation do not take effect after the pod is created. Delete and recreate the pod to apply the changes.

Configurar largura de banda IPv6 para um pod

O exemplo a seguir cria um Deployment com 10 Mbps de largura de banda IPv6 e uma regra apenas de saída.

Console

  1. Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Workloads > Deployments.

  3. No canto superior direito, clique em Create from YAML. Cole o YAML a seguir no editor Templates e clique em Create.

    Este exemplo configura 10 Mbps de largura de banda IPv6 para o pod e cria uma regra apenas de saída.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: example
      labels:
        app: example
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: example
      template:
        metadata:
          labels:
            app: example
          annotations:
            k8s.aliyun.com/ipv6-bandwidth: "10"  # Public bandwidth, in Mbps
            k8s.aliyun.com/ipv6-egress-only: ""  # Create an egress-only rule
        spec:
          containers:
          - name: example
            image: nginx

    Saída esperada:

    deployment.apps/example created
  4. Na página Deployments, clique no deployment chamado example. Na página de visão geral do example, localize o nome do pod criado.

kubectl

  1. Crie um arquivo chamado example.yaml com o conteúdo a seguir.

    Este exemplo configura 10 Mbps de largura de banda IPv6 para o pod e cria uma regra apenas de saída.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: example
      labels:
        app: example
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: example
      template:
        metadata:
          labels:
            app: example
          annotations:
            k8s.aliyun.com/ipv6-bandwidth: "10"  # Public bandwidth, in Mbps
            k8s.aliyun.com/ipv6-egress-only: ""  # Create an egress-only rule
        spec:
          containers:
          - name: example
            image: nginx
  2. Execute kubectl apply -f example.yaml.

Verificar a configuração

Após a criação do Deployment, verifique se o plano de largura de banda e a regra apenas de saída foram configurados corretamente.

  1. Liste os recursos PodIPv6GW no namespace onde o Deployment foi criado:

    kubectl get podipv6gws -n <namespace>
  2. Inspecione o recurso PodIPv6GW que foi criado automaticamente para o pod:

    kubectl get podipv6gws.alibabacloud.com -oyaml example-674b897446-q****

    Saída esperada:

    apiVersion: alibabacloud.com/v1beta1
    kind: PodIPv6GW
    metadata:
      creationTimestamp: "2024-02-07T06:00:48Z"
      finalizers:
      - ipv6gw-controller.alibabacloud.com/finalizer
      generation: 1
      name: example-674b897446-q****
      namespace: default
      ownerReferences:
      - apiVersion: v1
        kind: Pod
        name: example-674b897446-q****
        uid: bdf86c45-7**5-4**4-b**3-9b****
      resourceVersion: "11488"
      uid: 78747d60-9**8-4**e-b**8-f7f7c****
    spec:
      bandwidth: 10
      egressOnlyRule: true
      ipv6Address: 2408:4006:1115:xxxx:xxxx:xxxx:xxxx:xxxx
    status:
      ipv6AddressID: ipv6-xxx           # The IPv6 address resource ID
      ipv6EgressOnlyRuleID: ipv6py-xxx  # The egress-only rule resource ID
      ipv6GatewayID: ipv6gw-xxx         # The IPv6 gateway resource ID
      ipv6InternetBandwidthID: ipv6bw-xxx  # The bandwidth plan resource ID

    A seção status confirma que o gateway IPv6, o plano de largura de banda e a regra apenas de saída foram criados com sucesso.

FAQ

Posso implantar o ack-extend-network-controller em um cluster ACK serverless?

Este componente não foi projetado para clusters ACK serverless. Se o seu caso de uso exigir, gere primeiro um par de AccessKey para um usuário RAM — consulte Criar um usuário RAM e Criar uma política personalizada — e insira o par de AccessKey nos campos correspondentes ao implantar o componente a partir do Marketplace.

Próximos passos