-
K8s network之五:Kubernetes集群Pod和Service之间通信的实现原理
Kubernetes集群内Pod之间默认可以无障碍的进行通信,但是通常情况下Pod是不稳定的,无法确定Pod会在何时因为何种原因被重启。当Pod重启后,其会得到一个新的IP地址。而且,如无特别指明,Pod有可能会在不同的节点之间被调度。当提供相同服务的Pod有多个时,就需要一个统一的对外地址来接收服务请求,并将请求以负载均衡的方式分发到Pod上。Kubernetes Service就是在这种背景下被引入的,Service是一种为一组提供相同服务的Pod提供单一不变的、简单透明的接入访问点的资源对象。Service的IP地址和端口在其整个生命周期不会改变,客户端可以通过服务IP:服务Port的方式发起服务请求,也可以直接访问服务名,由Kubernetes集群提供的DNS解析服务将请求分发到Service背后的Pod上。出于篇幅考虑,相关的yaml配置不会在文章中出现,特殊情况除外,相关的yaml配置可以参考Kubernetes官方文档。