弄明白kubernetes中的“三种IP”
Node IP : Node节点的IP地址
Pod IP:Pod的IP地址
Cluster IP : Service 的IP地址
首先,Node IP是Kubernetes集群中每个节点(服务器)物理网卡的IP地址,这是一个真实存在的物理网络(也可能是虚拟机网络),每个节点(服务器)之间可以通过这个网络通信,Kubernetes集群外的机器与集群内的机器也是通过这个网络通信。
其次,Pod IP是每个Pod 的IP地址,它是Docker Engine根据docker0网络的IP段进行分配的,通常是一个虚拟的二层网络,默认Kubernetes集群内不同Node上的Pod是不能通信的,需要对集群网络进行管理,确保Pod之间可以互相通信,Pod之前的通信是通过Node IP 物理网卡转发出去的。
最后,Servicede Cluster IP,这是虚拟IP,只作用于Service这个对象,由kubernetes管理和分配。Cluster Ip 无法被ping,因为没有一个“实体网络对象”来响应。
Cluster IP 只能结合Service Port组成具体的通信端口,他们属于kubernetes集群这样的一个封闭空间,集群之外的节点如果需要访问,需要特殊在处理。
为了让集群外的用户或节点访问Service(微服务),需要给微服务制定NodePort,从而可以通过Node IP+ NodePort来访问。