k8s中pod、service、ingress之间的关系
前言
当应用服务需要通过域名访问时,会经过pod–>service–>ingress的部署流程,实现所需要的功能
Pod
-
直接访问Pod资源,存在的缺陷 1.Pod会随时被Deployment这样的控制器删除重建,访问Pod的结果就会变得不可预知 2.Pod的地址是在Pod启动后才被分配,在启动之前并不知道Pod的IP地址 3.应用往往都是由多个运行相同镜像的一组Pod组成,一个个Pod的访问变得不现实
Service
k8s中Service对象是用来解决上述Pod访问的问题
Ingress
ingress可以给service提供集群外部访问的url、负载均衡、ssl终止、http路由等。为了配置这些ingress规则,集群管理员需要部署一个ingress controller,它监听ingress和service的变化,根据规则配置负载均衡并提供访问入口
-
组成部分 1.nginx: 实现负载均衡到pod的集合 2.ingress controller: 从集群api获取service对应pod的ip到nginx配置文件中 3.ingress: 为nginx创建虚拟主机
结语
… …