更新时间:2019-10-30 17:41
本文主要介绍如何配置容器服务Kubernetes版Nginx Ingress Controller的私网SLB。
当您通过阿里云容器服务申请一个Kubernetes版集群,集群初始化时会自动部署一套Nginx Ingress Controller,默认其挂载在公网SLB实例上。
如果您希望集群内的服务不对外公开,即只对同一个VPC内其他服务调用访问,那么您可以通过调整Nginx Ingress Controller服务的配置来完成。
# nginx ingress slb service apiVersion: v1 kind: Service metadata: name: nginx-ingress-lb namespace: kube-system labels: app: nginx-ingress-lb annotations: service.beta.kubernetes.io/alicloud-loadbalancer-address-type: intranet service.beta.kubernetes.io/alicloud-loadbalancer-id: [$SLB_ID] #service.beta.kubernetes.io/alicloud-loadbalancer-force-override-listeners: 'true' spec: type: LoadBalancer # route traffic to other nodes externalTrafficPolicy: "Cluster" ports: - port: 80 name: http targetPort: 80 - port: 443 name: https targetPort: 443 selector: # select app=ingress-nginx pods app: ingress-nginx
注:
alicloud-loadbalancer-address-type: intranet
选项指明SLB实例地址类型为私网类型。- [$SLB_ID]为私网SLB实例ID。
alicloud-loadbalancer-force-override-listeners: 'true'
选项自动创建SLB端口监听。
另外对于一些特殊场景,您期望容器集群内的服务既能允许公网访问,同时又希望能被同一个VPC下的其他服务直接访问(不经过公网)。可以额外部署一个kube-system/nginx-ingress-lb-intranet服务即可。
注:默认集群初始化时已经创建了一个kube-system/nginx-ingress-lb服务,其生成的是公网SLB实例。
# intranet nginx ingress slb service apiVersion: v1 kind: Service metadata: # 这里服务取名为nginx-ingress-lb-intranet name: nginx-ingress-lb-intranet namespace: kube-system labels: app: nginx-ingress-lb-intranet annotations: service.beta.kubernetes.io/alicloud-loadbalancer-address-type: intranet # 修改为您的私网SLB实例ID service.beta.kubernetes.io/alicloud-loadbalancer-id: [$SLB_ID] #service.beta.kubernetes.io/alicloud-loadbalancer-force-override-listeners: 'true' spec: type: LoadBalancer # route traffic to other nodes externalTrafficPolicy: "Cluster" ports: - port: 80 name: http targetPort: 80 - port: 443 name: https targetPort: 443 selector: # select app=ingress-nginx pods app: ingress-nginx
注:本文的name参数为nginx-ingress-lb-intranet,可根据现场实际情况进行取名。
kubectl -n kube-system get svc | grep nginx-ingress-lb nginx-ingress-lb LoadBalancer XX.XX.XX.XX a.b.c.d<公网> 80:31456/TCP,443:30016/TCP 5h nginx-ingress-lb-intranet LoadBalancer XX.XX.XX.XX e.f.g.h<内网> 80:32394/TCP,443:31000/TCP 7m
在文档使用中是否遇到以下问题
更多建议
匿名提交