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公网通信能力时如果没有配置该Annotation,则Pod所绑定的IPv6地址的公网带宽默认为网关支持的公网带宽最大值。 |
Annotation请添加在Pod的metadata下,例如:创建Deployment时,Annotation需添加在
.spec.template.metadata
下。仅支持在创建Pod时添加相关Annotation使IPv6功能生效,更新Pod时添加或者修改相关Annotation均不会生效。
配置示例
使用以下内容创建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
执行以下命令,部署Nginx。
kubectl apply -f nginx.yaml
执行以下命令,查看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地址。