天天看点

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

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

背景:

IPv4地址已接近枯竭,被誉为下一代互联网技术的IPv6成为新的“全球互联网门牌号”,它可以让地球上的每一粒沙子都拥有地址。当下,各国都在加速推进下一代互联网的部署,工信部也互联网服务商提出了IPv6改造的要求,国内的各大互联网厂商都在进行着IPv6的改造,IPv6的改造已迫在眉睫。

那么部署在阿里云容器服务上的应用如何暴露提供IPv6的服务呢?我们可以使用IPv6类型的LoadBalancer来暴露我们的服务。

使用方式:

  1. 创建容器服务的k8s集群,注意创建集群的 kube-proxy 代理模式需要是IPVS
    阿里云容器服务通过LoadBalancer暴露IPv6服务阿里云容器服务通过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
    type: LoadBalancer           
  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           
  4. 在IPv6的环境中测试访问外部的地址,就可以访问到我们暴露的服务,例如我们上面创建的这个LoadBalancer,访问 "http://[2408:4001:f10::182]"地址,就能返回后端的nginx的服务:
    阿里云容器服务通过LoadBalancer暴露IPv6服务阿里云容器服务通过LoadBalancer暴露IPv6服务

继续阅读