阿里云容器服务通过LoadBalancer暴露IPv6服务
背景:
IPv4地址已接近枯竭,被誉为下一代互联网技术的IPv6成为新的“全球互联网门牌号”,它可以让地球上的每一粒沙子都拥有地址。当下,各国都在加速推进下一代互联网的部署,工信部也互联网服务商提出了IPv6改造的要求,国内的各大互联网厂商都在进行着IPv6的改造,IPv6的改造已迫在眉睫。
那么部署在阿里云容器服务上的应用如何暴露提供IPv6的服务呢?我们可以使用IPv6类型的LoadBalancer来暴露我们的服务。
使用方式:
- 创建容器服务的k8s集群,注意创建集群的 kube-proxy 代理模式需要是IPVS
-
创建LoadBalancer类型的Service,创建的模板的annotation中指定LoadBalancer类型为IPv6,例如下面的模板,声明使用ipv6,后端关联到一组nginx pod:
apiVersion: v1 kind: Service metadata: annotations: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version: ipv6 name: nginx spec: ports: - port: 80 protocol: TCP targetPort: 80 selector: run: nginx type: LoadBalancer
-
创建好后通过kubectl get svc 可以看到创建好的LoadBalancer类型的Service,大概20s后再通过kubectl get svc可以看到LoadBalancer的外网IP初始化出IPv6的IP地址:
/tmp kubectl get svc nginx NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE nginx LoadBalancer 172.17.2.134 2408:4001:f10::182 80:30612/TCP 18s
- 在IPv6的环境中测试访问外部的地址,就可以访问到我们暴露的服务,例如我们上面创建的这个LoadBalancer,访问 "http://[2408:4001:f10::182]"地址,就能返回后端的nginx的服务: