莆田市城厢区建设局网站,淘宝关键词排名怎么查,莱西市建设局网站,海口网站运营托管咨询一、iptables/ipvs
前面我们说到kube-proxy是基于iptables/ipvs的分布式L4负载均衡技术#xff0c;但是有很多的需求场景是这种网络层的dnat不能提供的能力。 基于L4的服务
每个应用独占ELB#xff0c;浪费资源每个服务都需要创建DNS配置启动HTTPS#xff0c;每个服务需要…一、iptables/ipvs
前面我们说到kube-proxy是基于iptables/ipvs的分布式L4负载均衡技术但是有很多的需求场景是这种网络层的dnat不能提供的能力。 基于L4的服务
每个应用独占ELB浪费资源每个服务都需要创建DNS配置启动HTTPS每个服务需要自己管理证书
二、ingress
ingress是基于L7应用层的负载均衡技术在用户态应用层面提供了更多的功能支持。例如
L7 path forwarding请求路径的转发http header rewriteTLS termination 基于L7的ingress:
多个应用共享ELB多个应用共享Domain,可采用静态DNS配置TLS termination发生在ingress层可集中管理证书。
也是需要通过service将外部流量转到集群内部在指向ingress pod去做L7负载均衡比如请求路径/a就转向a服务/b就转向b服务。ingress根据hostname和path将流量转发到不同服务使得一个负载均衡器用于多个后台应用
2.1 工作原理
ingress是一层代理将流量转到不同的服务。类比传统反向代理软件nginx或者envoy通常转发规则需要手动配置配置文件。而ingress是kubenetes的一个资源对象是转发规则的抽象只要定义好了ingress那么ingress controller将会生成反向代理软件的转发配置文件。
三、发布ingress
首先需要在集群安装Ingress Controller不同的代理软件提供了不同的Ingress Controller以nginx为例。 1、下载Nginx Ingress Controller的部署文件
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.1/deploy/static/provider/cloud/deploy.yaml2、安装Ingress Controller
kubectl apply -f deploy.yaml查看到Ingress Controller部署成功了 并生成了接收外部流量的service 该service接收到外部请求后将交由ingress-nginx-controller pod处理。
3、配置ingress转发规则
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: gatewayannotations:kubernetes.io/ingress.class: nginx
spec:rules:- host: org.sxm.comhttp:paths:- path: /pathType: Prefixbackend:service:name: httpserver-svcport:number: 80ingress规则绑定了请求域名和路径。 ingress-nginx-controller pod接收请求后根据转发规则将请求转发到各backend服务。
4、访问外部流量统一入口 将请求转发到了后端服务httpserver-svc。