k8s 服务流量流转
1、首先是域名解析,解析到指定服务器ip,即k8s的mater的节点;
2、k8s 会通过 gateway 来解析流量
查看gateway(kubectl.exe get gateway -n test)
例如域名是test.zhiqiu.top
端口默认是80,当然48080端口也是可以过来的(业务逻辑不同)
通过k8s 的gateway,即统一入口后流量打入到当前ns中
3、然后k8s 通过vs 解析路由并分发到指定的service中
查看vs(kubectl.exe get vs -n test)
查看vs详细内容 kubectl.exe edit vs zhiqiu-vs -n test
满足要求的路径将会被转发到front-new.test.svc.cluster.local 及 ns=test的svc为front-new的服务中
4、我这边的front-new是一个前端服务,是一个nginx服务,对于来的流量进行再次路由解析转发到指定的服务中。
因为我这边是多个服务,前端有多个。这里的nginx服务解析完毕后会把流量转发给我们的统一鉴权服务。
5、统一鉴权服务根据鉴权结果,转发或者转登录。正常转发到路由对应的服务中(ps:当前我们所有的服务启动时都会请求统计鉴权服务进行注册服务路由,即我们自己的gateway服务)根据注册的路由信息进行转发到指定的服务中。
6、svc将流量给到pod(这个就是k8s自己的分流策略了,这里没研究不在说了。一般是均分流量到多个pod)