https://docs.projectcalico.org/networking/determine-best-networking
https://kubernetes.io/docs/concepts/cluster-administration/networking/#the-kubernetes-network-model
flannel、calico、cililum
Encapsulation
# 封装是指在附加层中加入网络数据包以提供其他上下文和信息的过程
# overlay 网络中,封装被用于从虚拟网络转换到底层地址空间,从而能路由到不同位置,当到达后将其解封装并继续路由到其最终地址
# 消费者 POD 通常并不直接调服务的 ClusterIP,而是先调用服务名
# 因为 ClusterIP 会变(如针对 TEST/UAT/PROD 等不同环境的发布 ClusterIP 会不同),而服务名通常不变
# NodePort 是将内部服务对外暴露的基础 => LoadBalancer 底层通常依赖于 NodePort
Overlay (Network)
# 覆盖网络可使底层网络在不了解 POD IP 的情况下实现集群节点间的 POD 通信
# 不同节点的 POD 之间的数据包通过 VXLAN/UDP 封装,将原始报文封装到目的是对端节点 IP 的外层数据包中,并隐藏内部数据包的 POD IP
# 这可以由 Linux 内核高效完成,但仍有很小开销,若运行网络密集型工作负载,可能希望避免这种开销
# 相比之下,不使用覆盖的操作提供了最高性能的网络(因为离开 POD 的数据包直接由物理线路进行传输)
# 覆盖网络是建立在现有网络之上的虚拟的逻辑网络,常用于在现有网络基础之上提供有用的网络抽象,并分离和保护不同的逻辑网络
#
标签:Service,IP,网络,集群,cililum,POD,calico,路由,flannel
From: https://www.cnblogs.com/MoonGlow/p/17553096.html