K8s系列之:Node IP、Pod IP、Cluster IP和服务发现机制
K8s通过Add-On增值包的方式引入了DNS系统,把服务名作为DNS域名,这样一来程序就可以直接使用服务名来建立通信连接了。
一、外部系统访问Service问题
- Node IP:Node节点的IP地址
- Pod IP:Pod的IP地址
- Cluster IP:Service的IP地址
1.Node IP
- Node IP是K8s集群中每个节点的物理网卡的IP地址,这是一个真实存在的物理网络,所有属于这个网络的服务器之间都能通过这个网络直接通信。
- K8s集群之外的节点访问K8s集群之内的每个节点或者TCP/IP服务时,必须要通过Node IP进行通信。
2.Pod IP
- Pod IP是每个Pod的IP地址,是Docker Engine根据docker0网桥的IP地址段进行分配的,通常是一个虚拟的二层网络
- K8s要求位于不同Node上的Pod能够彼此直接通信,所以K8s里一个Pod里的容器访问另外一个Pod里的容器,就是通过Pod IP所在的虚拟二层网络进行通信的,而真实的TCP/IP流量则是通过Node IP所在的物理网卡流出的。