k8s的ingres的工作原理

k8s的ingres的工作原理



img

自己总结的话术:安装好ingress服务,ingress controller会不断的list and watch k8s的api,查看pod和service的情况。得到信息后会将其转发给ingress生成配置,最后由方向代理负载均衡器生成,达到服务发现的目的。

负载均衡器指nginx这种实现负载和反向代理的功能。

ingress controller指跟k8s的api交互的工具,感知k8s集群的pod和svc的状态。

ingress是指制定反向代理规则,指定哪个域名对应哪个svc的pod。

ingress controller从ingress那里域名解析的规则,同时从api那里获取svc和pod的信息,将规则和信息动态写入负载均衡器(nginx)。

具体的调度:

用户请求,访问到ingress的svc上,转到ingress的pod上面,获取到ingress定义的规则,转发到对应域名的svc上面,最终访问到想要访问的pod上的服务。

ingress的三个组件:

  1. 反向代理负载均衡器
  2. Ingress Controller
  3. Ingress

1 反向代理负载均衡器
反向代理负载均衡器很简单,说白了就是nginx、apche等;在集群中反向代理负载均衡器可以自由部署,可以使用Replication Controller、Deployment、DaemonSet等等。

2 Ingress Controller
Ingress Controller实质上可以理解为是个监视器,Ingress Controller通过不断地跟Kubernetes API打交道,实时的感知后端Service、Pod等变化,比如新增和减少Pod,Service增加与减少等;当得到这些变化信息后,Ingress Controller在结合下文的Ingress生成配置,然后更新反向代理负载均衡器,并刷新其配置,达到服务发现的作用。

3 Ingress
Ingress简单理解就是个规则定义,比如某个域名对应某个Serivce,即当某个域名的请求进来时转发给某个Service;这个规则将与Ingress Controller结合,然后Ingress Controller将其动态写入到负载均衡器中,从而实现整体的服务发现和负载均衡。Ingress解决的是新的服务加入后,域名和服务的对应问题,基本上是一个ingress的对象,通过yaml进行创建和更新进行加载。

ingress

自己总结:ingress controller通过api获得了k8s集群内部pod和service的信息。ingress controller通过ingress获取新的规则。然后将规则动态写入负载均衡器(nginx)。

基于ingress的访问请求流程:

img

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值