Kubernetes 篇章(二)
CNI(容器网络接口)
CNI是Container Network Interface的是一个标准的,通用的接口。现在容器平台:docker,kubernetes,mesos,容器网络解决方案:flannel,calico,weave。只要提供一个标准的接口,就能为同样满足该协议的所有容器平台提供网络功能,而CNI正是这样的一个标准接口协议。
2.1 pod的通信分类
1、同一个Pod内的多个容器之间:lo Network
2、各Pod之间 或 不同主机各Pod 的通讯:Over lay Network
3、Pod 与 Service之间的通讯:各节点的 Iptables规则 或者 IPVS
2.2 K8S整体网络模型图
2.3 K8S中的三种网络
1、node网络:负责不同主机之间的pod通信的入口和出口(物理网络)
2、service网络:负责对外提供服务(暴露网络&集群内部网络)
3、pod网络:负责pod内部容器之间的通信 和 pod 与 pod之间的通信(内部网络)
2.4 K8S的网络通讯原理
1、同一个Pod内部通讯:
- 同一个Pod共享同一个网络命名空间,共享同一个 Linux协议栈。
2、Pod1 至 Pod2:
- Pod1与Pod2在同一台机器:由 Docker0网桥直接转发请求至Pod2,不需要经过 Flannel。
- Pod1至Pod2不在同一台主机:Pod的地址是与 docker0在同一个网段的,但 docker0网段与宿主机网卡是两个完全不同的IP网段,并且不同Node之间的通信只能通过宿主机的物理网卡进行。
3、Pod 至 Service的网络:
- iptables 或者 IPVS维护和转发
4、Pod到外网:
- Pod向外网发送请求,查找路由表,转发数据包到宿主机的网卡,宿主网卡完成路由选择后, iptables执行 Masquerade,把源IP更改为宿主网卡的IP,然后向外网服务器发送请求
5、外网访问Pod:
- 访问对应的Service即可
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!