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地址。