场景说明
在前面如何配置阿里云容器服务K8S Ingress Controller使用私网SLB一文中描述了如何调整阿里云容器服务Kubernetes集群中默认的Nginx Ingress Controller配置使用私网SLB实例,文中提到的两种模式基本可以满足大部分需求场景,但对于一些特殊场景,比如集群内有部分公网服务需要通过公网Ingress方式来对外暴露提供访问,但是又有部分内网服务仅仅只希望对同VPC内非Kubernetes集群内的服务提供访问,而又不允许能被公网访问到,对此我们完全可以通过部署两套独立的Nginx Ingress Controller服务,其前端绑定不同网络类型的SLB实例来满足这类需求场景。
下面我们以此场景来说明如何在阿里云容器服务Kubernetes集群中同时部署多套独立的Nginx Ingress Controller来对外提供不同的服务访问。
现有服务说明
我们知道,当我们通过阿里云容器服务控制台成功申请一个Kubernetes集群后,默认集群内已经部署了一套带有公网SLB实例的Nginx Ingress Controller服务,通过如下命令可以查看到:
~ # 查询集群默认 Nginx Ingress Controller 服务相关资源
~ kubectl -n kube-system get svc nginx-ingress-lb default-http-backend
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nginx-ingress-lb LoadBalancer 172.19.7.30 47.95.97.115 80:31429/TCP,443:32553/TCP 2d
default-http-backend ClusterIP 172.19.11.213 <none> 80/TCP 2d
~
~ kubectl -n kube-system get deploy nginx-ingress-controller default-http-backend
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
nginx-ingress-controller 2 2 2 2 2d
default-http-backend 1 1