https://kubernetes.io/zh/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/
什么是服务发现?
服务的互相访问,三大类需求:
1 内部 <-> 内部 :内部互访
2 内部 -> 外部 :对外请求
3 外部 -> 内部 :暴露服务
先看两个概念:ingress和service:
原文:https://www.jianshu.com/p/06a3153021ca
ingress是干嘛的?
前面聊过,service只能提供4层负载均衡的能力,虽然service可以通过NodePort的方式来服务,但是随着服务的增多,会在物理机上开辟太多端口,管理起来混乱。
那么我们换一种思路来暴露服务,创建一个具有N个副本的nginx服务,在nginx服务内配置各个服务的域名与集群内部的服务的IP,这些nginx服务再通过NodePort的方式来暴露。外部服务通过域名:Nginx NodePort端口来访问nginx,nginx再通过域名反向代理到真实服务。
上面的这个流程就是ingress做的事,ingress分为ingress controller与ingress配置。ingress controller是反向代理服务器,对外通过NodePort(或者其他方式)来暴露,ingress配置是抽象出来的域名代理配置。
什么是service?
service是pod的一个逻辑分组,是pod服务的对外入口抽象。service同样也通过pod的标签来选择pod,与控制器一致。