阿里云容器服务通过LoadBalancer暴露IPv6服务

时间:2023-03-10 04:50:25
阿里云容器服务通过LoadBalancer暴露IPv6服务

背景:

IPv4地址已接近枯竭,被誉为下一代互联网技术的IPv6成为新的“全球互联网门牌号”,它可以让地球上的每一粒沙子都拥有地址。当下,各国都在加速推进下一代互联网的部署,工信部也互联网服务商提出了IPv6改造的要求,国内的各大互联网厂商都在进行着IPv6的改造,IPv6的改造已迫在眉睫。
那么部署在阿里云容器服务上的应用如何暴露提供IPv6的服务呢?我们可以使用IPv6类型的LoadBalancer来暴露我们的服务。

使用方式:

  1. 创建容器服务的k8s集群,注意创建集群的 kube-proxy 代理模式需要是IPVS 
    阿里云容器服务通过LoadBalancer暴露IPv6服务
  2. 创建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

    阿里云容器服务通过LoadBalancer暴露IPv6服务阿里云容器服务通过LoadBalancer暴露IPv6服务

  3. 创建好后通过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

    阿里云容器服务通过LoadBalancer暴露IPv6服务阿里云容器服务通过LoadBalancer暴露IPv6服务

  4. 在IPv6的环境中测试访问外部的地址,就可以访问到我们暴露的服务,例如我们上面创建的这个LoadBalancer,访问 "http://[2408:4001:f10::182]"地址,就能返回后端的nginx的服务: 
    阿里云容器服务通过LoadBalancer暴露IPv6服务

本文作者:csome

原文链接

本文为云栖社区原创内容,未经允许不得转载。