1 简介
ingress与ingress-controller
要理解ingress,需要区分两个概念,ingress和ingress-controller:
ingress对象:
指的是k8s中的一个api对象,一般用yaml配置。作用是定义请求如何转发到service的规则,可以理解为配置模板。
ingress-controller:
具体实现反向代理及负载均衡的程序,对ingress定义的规则进行解析,根据配置的规则来实现请求转发。简单来说,ingress-controller才是负责具体转发的组件,通过各种方式将它暴露在集群入口,外部对集群的请求流量会先到ingress-controller,而ingress对象是用来告诉ingress-controller该如何转发请求,比如哪些域名哪些path要转发到哪些服务等等。
2 架构
1 存在的问题?
2 架构图
3 访问架构图
3 部署nginx-ingress
3.1 部署 nginx-ingress-controller
# wget https://raw.githubusercontent.com/linuxhub/kubernetes/master/install/ingress-nginx/mandatory.yaml
# kubectl apply -f mandatory.yaml
查看可以看到部署了3个pod,一个replicaset,一个deployment
[root@master1 ingress]# kubectl -n ingress-nginx get all
NAME READY STATUS RESTARTS AGE
pod/nginx-ingress-controller-796dc865f8-2h9qh 1/1 Running 0 69m
pod/nginx-ingress-controller-796dc865f8-w79bn 1/1 Running 0 69m
pod/nginx-ingress-controller-796dc865f8-z9ns4 1/1 Running 0 69m
NAME TYPE CLUSTER-IP EXTE