为Pod分配IPv6地址

ACS Pod同时支持IPv4和IPv6地址。与IPv4相比,IPv6大大扩展了地址的可用空间。本文介绍如何在ACS集群中为Pod分配IPv6地址。

背景信息

IPv4的应用范围虽广,但网络地址资源有限,制约了互联网的发展。IPv6不仅可以解决网络地址资源有限的问题,还可以解决多种接入设备连接互联网障碍。更多信息,请参见IPv6基本概念

ACS Pod配置IPv6地址的相关限制如下:

  • 每个Pod最多只能绑定一个IPv6地址。

  • 指定vCPU和内存创建的Pod均支持配置IPv6地址。

前提条件

已创建ACS集群,且已开启IPv6双栈。具体操作,请参见创建ACS集群

配置说明

ACS场景下,您可以在Pod metadata中添加Annotation来为Pod绑定一个IPv6地址,开通并设置IPv6地址的公网带宽。相关Annotation如下:

Annotation

示例值

是否必选

说明

.network.alibabacloud.com/enable-ipv6

"true"

配置为true表示为Pod绑定一个IPv6地址。

.network.alibabacloud.com/ipv6-bandwidth-enable

"true"

配置为true表示开通Pod的IPv6公网通信能力。

.network.alibabacloud.com/ipv6-bandwidth

100M

配置IPv6地址的公网带宽峰值。取值如下:

  • 当IPv6网关的公网带宽计费方式为按固定带宽计费时,IPv6地址的公网带宽范围为1~2000 Mbps。

  • 当IPv6网关的公网带宽计费方式为按使用流量计费时,IPv6地址的公网带宽范围为1~1000 Mbps。

说明

开通IPv6公网通信能力时如果没有配置该Annotation,则Pod所绑定的IPv6地址的公网带宽默认为网关支持的公网带宽最大值。

重要
  • Annotation请添加在Pod的metadata下,例如:创建Deployment时,Annotation需添加在.spec.template.metadata下。

  • 仅支持在创建Pod时添加相关Annotation使IPv6功能生效,更新Pod时添加或者修改相关Annotation均不会生效。

配置示例

  1. 使用以下内容创建nginx.yaml。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx
      labels:
        app: nginx
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          name: nginx-test
          labels:
            app: nginx
          annotations:
            network.alibabacloud.com/enable-ipv6: "true"               # 为Pod绑定一个IPv6地址
            network.alibabacloud.com/ipv6-bandwidth-enable: "true"     # 开通IPv6公网通信能力
            network.alibabacloud.com/ipv6-bandwidth: 100M              # 设置IPv6地址的公网带宽峰值
        spec:
          containers:
          - name: nginx
            image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
            ports:
            - containerPort: 80
  2. 执行以下命令,部署Nginx。

    kubectl apply -f nginx.yaml
  3. 执行以下命令,查看Pod详情,并获取Pod的IPv6地址。

    kubectl describe pod nginx-xxxxx-xxxxx|grep ipv6-address

    预期输出:

                      network.alibabacloud.com/allocated-ipv6-address: 2408:4005:317:301:c870:xxxx:xxxx:xxxx

    可以看到,network.alibabacloud.com/allocated-ipv6Address字段可以获取该Pod的IPv6地址。