k8s集群一共有三种网络模型:

  • Node IP:Node节点的IP地址,即物理网卡的IP地址。
  • Pod IP:Pod的IP地址,即docker容器的IP地址,此为虚拟IP地址。
  • Cluster IP:Service的IP地址,此为虚拟IP地址。

Node IP

        这个只要接触过集群的应该都知道,其实就是我们机器的ip,可以是物理机的IP(也可能是虚拟机IP)。每个Service都会在Node节点上开通一个端口,外部可以通过NodeIP:NodePort即可访问Service里的Pod,和我们访问服务器部署的项目一样,IP:端口/项目名

Pod IP

        Pod IP是每个Pod的IP地址,他是Docker Engine根据docker网桥的IP地址段进行分配的,通常是一个虚拟的二层网络

  1.     同Service下的pod可以直接根据PodIP相互通信
  2.     不同Service下的pod在集群间pod通信要借助于 cluster ip
  3.     pod和集群外通信,要借助于node ip

Cluster IP

        Service的IP地址,此为虚拟IP地址。外部网络无法ping通,只有kubernetes集群内部访问使用。

  1. Cluster IP仅仅作用于Kubernetes Service这个对象,并由Kubernetes管理和分配P地址
  2. Cluster IP无法被ping,他没有一个“实体网络对象”来响应
  3. Cluster IP只能结合Service Port组成一个具体的通信端口,单独的Cluster IP不具备通信的基础,并且他们属于Kubernetes集群这样一个封闭的空间。
  4. 在不同Service下的pod节点在集群间相互访问可以通过Cluster IP

k8s网络间的通信和服务暴露请查看https://blog.csdn.net/huaruanIT/article/details/121470402

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐