默认情况下IPv6地址只具备私网访问能力,如果需要访问公网,则需要使用IPv6网关对IPv6地址进行带宽配置。本文介绍如何为Pod IPv6地址配置带宽包、只出访问规则。

前提条件

背景信息

关于IPv6网关,请参见什么是IPv6网关

使用限制

  • 不支持ASK集群、ACK边缘托管版、ASI集群。
  • 带宽大小、配置条目数受限于IPv6网关能力,使用约束请参见使用限制

Pod配置

您可以使用以下Pod Annotations配置:

Pod Annotations Value
k8s.aliyun.com/ipv6-bandwidth IPv6网关的公网带宽,单位:Mbps。取值范围:1~5000。

更多信息,请参见AllocateIpv6InternetBandwidth

k8s.aliyun.com/ipv6-internet-charge-type IPv6公网带宽的计费方式,取值:
  • PayByTraffic:按使用流量计费。
  • PayByBandwidth(默认值):按带宽计费。

更多信息,请参见AllocateIpv6InternetBandwidth

k8s.aliyun.com/ipv6-egress-only 创建只出规则。

使用自定义资源跟踪配置

创建Pod后,控制器会创建Pod同名的自定义资源。

以下示例将为Pod配置10 Mbps大小的IPv6带宽,并且创建只出规则。
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"
        k8s.aliyun.com/ipv6-egress-only: ""
    spec:
      containers:
      - name: example
        image: nginx
Pod创建成功后,执行如下命令,您可以访问Pod同名的资源podipv6gws.alibabacloud.com,跟踪分配的带宽包和只出访问规则信息。
kubectl get podipv6gws.alibabacloud.com  -oyaml example-75954794f-2****
预期输出:
apiVersion: alibabacloud.com/v1
kind: PodIPv6GW
metadata:
  creationTimestamp: "2022-09-20T06:46:14Z"
  finalizers:
  - ipv6gw-controller.alibabacloud.com/finalizer
  generation: 1
  name: example-75954794f-2****
  namespace: default
  ownerReferences:
  - apiVersion: v1
    kind: Pod
    name: example-75954794f-2****
    uid: 2f2d7a97-9b63-4bbd-a050-5bcf0990****
  resourceVersion: "395890"
  uid: 95ade813-9f72-40ff-b3be-9d6fc1e7****
spec:
  bandwidth: 10
  egressOnlyRule: true
  ipv6Address: 2408:4005:39c:xxxx:xxxx:xxxx:xxxx:xxxx
status:
  ipv6AddressID: ipv6-xxx
  ipv6EgressOnlyRuleID: ipv6py-xxx
  ipv6GatewayID: ipv6gw-xxx
  ipv6InternetBandwidthID: ipv6bw-xxx