背景:

阿里云容器服务里面创建一组Kubernetes集群,默认情况会也会部署好Ingress nginx,并使用LoadBalancer类型的Service。最后还会自动从SLB申请一组经典网络的SLB负载均衡器作用来该集群公网流量的入口,其自动添加后端服务器,并根据Ingress Controller的变化而自动变化。比如增加或者减少了Ingress Controller,那么对应的SLB默认服务器组也会对应的增加或者删除。如果删除对应的Service,那么Service绑定的SLB负载均衡器也会自动删除。


需求:

有时候我们需要创建一组专网的SLB应用于我们的Kubernetes集群,用来内部VPC网络访问,那我们如何创建用于专网的SLB?


步骤:

  1. 通过阿里云控制台手动申请好一组专网的SLB负载均衡器

  2. 创建如下Service

apiVersion: v1
kind: Service
metadata:
  name: nginx-ingress-lb-intranet
  namespace: kube-system
  labels:
    app: nginx-ingress-lb-intranet
  annotations:
    service.beta.kubernetes.io/alicloud-loadbalancer-address-type: intranet
    service.beta.kubernetes.io/alicloud-loadbalancer-id: lb-bp1qwyyenlotmnfw3lb6s
    service.beta.kubernetes.io/alicloud-loadbalancer-force-override-listeners: 'true'
spec:
  type: LoadBalancer
  externalTrafficPolicy: "Local"
  ports:
  - port: 80
    name: http
    targetPort: 80
  - port: 443
    name: https
    targetPort: 443
  selector:
    app: ingress-nginx

service.beta.kubernetes.io/alicloud-loadbalancer-address-type    指定负载均衡器的类型为专网

service.beta.kubernetes.io/alicloud-loadbalancer-id    指定负载均衡器的ID(刚创建的)

service.beta.kubernetes.io/alicloud-loadbalancer-force-override-listeners        是否自动创建监听


创建好后直接apply即可,负载均衡器将自动添加好监听与默认后端服务器


参考链接:如何配置阿里云容器服务K8S Ingress Controller使用私网SLB