枕上从妨一夜睡,灯前读尽十年诗。这篇文章主要讲述#yyds干货盘点#--k8s-网络模型相关的知识,希望能为你提供帮助。
今天讲讲kubernets网络模型,首先先来看pod通信原理.在容器启动前,会为容器创建一个虚拟Ethernet接口对,这个接口对类似于管道的两端,其中一端在主机命名空间中,另外一端在容器命名空间中,并命名为eth0。在主机命名空间的接口会绑定到网桥。网桥的地址段会IP赋值给容器的eth0接口。
pod通信有的基于overlay网络实现,有的基于vxlan实现,vxlan 全称是 Virtual eXtensible Local Area Network,虚拟可扩展的局域网。它是一种 overlay 技术,通过三层的网络来搭建虚拟的二层网络,有的基于openvswitch实现,有的基于BGP实现。
1.vxlan协议格式 VXLAN 全称是 Virtual eXtensible Local Area Network,虚拟可扩展的局域网。它是一种 overlay 技术,通过三层的网络来搭建虚拟的二层网络
2.Flannel是CoreOS团队针对Kubernetes设计的一个网络规划实现,简单来说,它的功能有以下几点:
3.Calico
Calico是Kubernetes生态系统中另一种流行的网络选择,它提供收费的技术支持。虽然Flannel被公认为是最简单的选择,但Calico以其性能、灵活性而闻名。Calico的功能更为全面,更为复杂。它不仅提供主机和pod之间的网络连接,还涉及网络安全和管理。Calico CNI插件在CNI框架内封装了Calico的功能。具体可查看github:??https://github.com/projectcalico/cni-plugin??
4.Canal:
Canal 是一个项目的名称,它试图将Flannel提供的网络层与Calico的网络策略功能集成在一起。然而,当贡献者完成细节工作时却发现,很明显,如果Flannel和Calico这两个项目的标准化和灵活性都已各自确保了话,那集成也就没那么大必要了。结果,这个官方项目变得有些“烂尾”了,不过却实现了将两种技术部署在一起的预期能力。出于这个原因,即使这个项目不复存在,业界还是会习惯性地将Flannel和Calico的组成称为“Canal”
5.Weave Net
Weave Net是一个多主机容器网络方案,支持去中心化的控制平台,各个host上的wRouter间通过建立Full Mesh的TCP链接,并通过Gossip来同步控制信息。这种方式省去了集中式的K/V Store,能够在一定程度上减低部署的复杂性,Weave将其称为“data centric”,而非RAFT或者Paxos的“algorithm centric”。这篇文章很详细,大家可以参考下:??https://my.oschina.net/u/2306127/blog/1822978??
6.macvlan
macvlan可以在主机的网卡上绑定多个二层mac地址,每个mac地址对应主机网卡(主接口)的一个子接口,每个container可以绑定一个子接口作为自己的网卡接口。
根据子接口通信方式的不同,macvlan存在四种工作模式:
对比图:
【#yyds干货盘点#--k8s-网络模型】
推荐阅读
- 1-3年Java开发工程师面试心得分享,精选面试题40道[2021-12-10持续更新]
- cadvisor 运行报错/sys/fs/cgroup/cpuacct,cpu: no such file or directory
- #yyds干货盘点#挑战40天从 Python菜鸟变大咖
- #yyds干货盘点#JavaSE系列Java程序设计基础——数据类型变量与运算符
- #yyds干货盘点#Windows/Mac 安装使用 Python 环境 +jupyter notebook
- pxe+kickstart自动安装系统
- Ubuntu12.04可用的源
- #yyds干货盘点#Windows Server之域控转移后清理元数据
- 虚拟机中windows与宿主机文件共享