或者是location url映射
#阿里云称之为ingress路由!在 Kubernetes 集群中,主要用于接入外部请求到k8s内部,Ingress是授权入站连接达到集群处事的法则调集,为您供给七层负载均衡能力。您可以给 Ingress 配置供给外部可访谒的 URL、负载均衡、SSL、基于名称的虚拟主机等。git地点:https://github.com/kubernetes/Ingress-nginx
Service错误谬误
#界说service以后,尤其是NodePort集群访谒,需要颠末2级转换调理,而且是4层调理,无论是iptables还是ipvs。4调理自身无法实现卸载https会话。
#ingress----k8s还有一种引入集群外部流量的方法,叫ingress。基于7层调理器。操作7层pod,将外部流量引入到内部。
回顾-Service:
事情三种方法模型: userspace(效率低、各类空间转换) iptables、ipvs(1.11版之后,部署时需要特别配置先关参数)
Service集群类型:
ClusterIP(集群内部通信),
NodePort(集群表里互通,事情逻辑:client-->nodeip:nodeport-->clusterip:serviceip--->podiip:containerport),可以在前面加个nginx,代办代理后端各个nodeport的时候,压力得到释放。
LoadBalancer
ExternerName
Ingress撑持的调理方法
1、url路径映射调理: location /aa ; location /bb。可以参考nginx。
2、主机调理:l例如server aaa; server bbb
Ingress类型:1、url映射 2、虚拟主机
Ingress-controller:(供给特定成果的pod,nginx-ingress-controller-pod):供给接入外部流量的特定pod。例如有3个节点,在这3个节点打上污点,在每个上面运行特定的daemonset pod,实现外部流量接入,为后面pod供给7层调理。众多控制器都是master节点的controllermanager的子件运行的。而ingree controller本身独立运行,凡是是一组pod资源。具有7层代办代理成果。
撑持的代办代理工具:nginx、Traefik、Evoy(微处事)、HAproxy
watch:Service始终watch着后端pod变革。只要pod产生变革,api-server立刻检测到。
Ingress
实现道理:
1、正常是用service去调理后面的适配label的pods,当pods增加,因为有labels,会自动识别后端添加的pods,如果用nginx怎么实现?把nginx运行在pod里面,配置文件在pod内部。这种pod叫ingress controller随时不雅察看着后真个pod的转变。ingress controler本身没有这种能力,借助于service去实现。所以nginx-ingress-controller后端还得成立service。这种service仅仅资助分类后真个pods资源。pods的配置在nignx里upstream面。service不会进行调理,仅仅分组。因此可以使用headless service,直接调理至后端pods。关键pods变革,怎么自动nginx的upstream以及其他配置,这种就通过ingress路由实现!
2、ingress需要建一个前端接入层,前端有可能是虚拟主机nginx配置的server,或者是location url映射,同时也要界说一个后端upstream-server。 upstream有几个主机。通过service来获取的。
3、ingress有个特点:作为资源来讲,直接通过编纂注入到nginx-ingress-controller,并生存为nginx的配置文件。而且ingress一旦发明service 后真个pods转变,ingress直接注入更新nginx配置文件,而且需要重载配置文件(traefik撑持自动重载)。
实现ingress法式(7层调理):
1、第一步:部署一个nginx-ingress-controller-pod。部署一个特殊pod。
2、第二部:给nginx-ingress-controller-pod创建前端service1。用来接入外部请求!
3、创建nginx-ingress-controller-pod后端service2,以及service关联的pods。
4、创建ingress、自动实现路由法则,自动实现service2自动注入到nginx-ingress-controller-pod法则(nginx.conf)
5、总结就是首先部署外部请求<------ingress-service<-----nginx-ingress-controller-pod<--------ingress<------service(headless、daemonset)<------pods
Ingress道理图
道理:外部负载均衡器externalLB请求调至到 nodeport 里面service处事--->调理到内部pod(ingress controller里面)----->按照ingree界说,是虚拟主机,还是url代办代理---->假设是主机名,一组主机名对应后真个pod资源pod1,pod2,pod3。pod怎么分组通过service进行分组。才华被ingress引用。
先安置ingress controller pod。然后界说ingress。再界说pod生成service。
动态生效:pod一变革,service就变革,service一变革,ingress就变革,ingreess一变革就注入到ingress controller里面。实时动态。
例子1(界说nginx-ingress-controller-pod) 3大法式!
1、创建ingress-controller
#检察ingress辅佐文档
[[email protected] ingress]# kubectl explain ingress.spec
#检察虚拟主机调理法则
[[email protected] ingress]# kubectl explain ingress.spec.rules.host
#检察路径url映射调理法则
[[email protected] ingress]# kubectl explain ingress.spec.rules.http.paths
#检察路径url映射调理法则
#检察url映射挪用的后端主机法则(后端是通过service关联一组后端pod)
[[email protected] ingress]# kubectl explain ingress.spec.backend.servicename
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/30395.html