k8s实⽤整理(17)-Ingress配置外部访问
⽬录
Ingress 介绍
环境、软件准备
部署 Default Backend
部署 Ingress Controller
部署 Ingress
Name based virtual hosting
Simple fanout
1、Ingress 介绍
我们知道,到⽬前为⽌ Kubernetes 暴露服务的有三种⽅式,分别为LoadBlancer Service、NodePort Ser
vice、Ingress。官⽹对 Ingress 的定义为管理对外服务到集内服务之间规则的集合,通俗点讲就是它定义规则来允许进⼊集的请求被转发到集中对应服务上,从来实现服务暴漏。 Ingress 能把集内 Service 配置成外⽹能够访问的 URL,流量负载均衡,终⽌SSL,提供基于域名访问的虚拟主机等等。
之前dashboard\prometheus等暴露服务均是采⽤NodePort⽅式。
LoadBlancer Service
LoadBlancer Service 是 Kubernetes 结合云平台的组件,如国外 GCE、AWS、国内阿⾥云等等,使⽤它向使⽤的底层云平台申请创建负载均衡器来实现,有局限性,对于使⽤云平台的集⽐较⽅便。
NodePort Service
负载均衡器的作用NodePort Service 是通过在节点上暴漏端⼝,然后通过将端⼝映射到具体某个服务上来实现服务暴漏,⽐较直观⽅便,但是对于集来说,随着 Service 的不断增加,需要的端⼝越来越多,很容易出现端⼝冲突,⽽且不容易管理。当然对于⼩规模的集服务,还是⽐较不错的。
Ingress
Ingress 使⽤开源的反向代理负载均衡器来实现对外暴漏服务,⽐如 Nginx、Apache、Haproxy等。Nginx Ingress ⼀般有三个组件组成:Nginx 反向代理负载均衡器
Ingress Controller
Ingress Controller 可以理解为控制器,它通过不断的跟 Kubernetes API 交互,实时获取后端 Service、Pod 等的变化,⽐如新增、删除等,然后结合 Ingress 定义的规则⽣成配置,然后动态更新上边的 Nginx 负载均衡器,并刷新使配置⽣效,来达到服务⾃动发现的作⽤。
Ingress
Ingress 则是定义规则,通过它定义某个域名的请求过来之后转发到集中指定的 Service。它可以通过 Yaml ⽂件定义,可以给⼀个或多个 Service 定义⼀个或多个 Ingress 规则。
以上三者有机的协调配合起来,就可以完成 Kubernetes 集服务的暴漏。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论