默认情况下IPv6地址只具备私网访问能力,如果需要访问公网,则需要使用IPv6网关对IPv6地址进行带宽配置。本文介绍如何为Pod IPv6地址配置带宽包、只出访问规则。
前提条件
- 创建ACK托管版或专有版集群,详细信息请参见创建Kubernetes托管版集群、创建Kubernetes专有版集群。集群满足以下条件:
- IPv6双栈已开启。
- 网络插件选择Terway。
- 已安装ack-extend-network-controller组件,并且开启ipv6gw控制器。您可以在ACK应用市场中选择安装,请参见应用市场。
- 您需要在VPC中创建IPv6网关后再使用ipv6gw控制器,如何创建IPv6网关请参见创建和管理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公网带宽的计费方式,取值:
更多信息,请参见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