为ECI Pod分配IPv6地址

ECI Pod(即ECI实例)同时支持IPv4和IPv6地址,相比IPv4,IPv6大大扩展了地址的可用空间。本文介绍如何为ECI Pod分配IPv6地址。

背景信息

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

ECI实例配置IPv6地址的相关限制如下:

  • 每个ECI实例最多只能绑定一个IPv6地址。

  • 指定vCPU和内存创建的ECI实例均支持配置IPv6地址。指定ECS规格创建ECI实例时,请先确保指定的ECS规格支持IPv6。关于ECS规格是否支持IPv6,请参见ECS实例规格族

前提条件

已为ECI实例所属的VPC和交换机开通IPv6网段。具体操作,请参见VPC开通IPv6交换机开通IPv6

配置说明

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

Annotation

示例值

是否必选

说明

k8s.aliyun.com/eci-enable-ipv6

"true"

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

k8s.aliyun.com/eci-ipv6-bandwidth-enable

"true"

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

k8s.aliyun.com/eci-ipv6-bandwidth

200

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

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

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

说明

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

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

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

配置示例如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: test
  labels:
    app: test
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      name: nginx-test
      labels:
        app: nginx
        alibabacloud.com/eci: "true" 
      annotations:
        k8s.aliyun.com/eci-enable-ipv6: "true"               # 为Pod绑定一个IPv6地址
        k8s.aliyun.com/eci-ipv6-bandwidth-enable: "true"     # 开通IPv6公网通信能力
        k8s.aliyun.com/eci-ipv6-bandwidth: 100M              # 设置IPv6地址的公网带宽峰值
    spec:
      containers:
      - name: nginx
        image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
        ports:
        - containerPort: 80

创建ECI Pod后,您可以通过kubectl describe pod命令查看Pod详情,在返回的Annotations中,通过k8s.aliyun.com/allocated-ipv6Address字段可以获取该Pod的IPv6地址。