K8S简历(十六)

K8S是没网络功能的要使K8S拥有网络功能要使用第三方的CNI插件实现,第三方插件有很多比如:flannel,calico,canel等等,其中flannel部署简单但没有网络控制的功能,calico部署比较繁琐但功能强大,cannel二者的综合。今天我们就从flannel下手了解K8S的网络插件。

K8S网络通信:

K8S需要用到网络的情况大概有4种:

  1. 容器间通信同一个Pod中的多个容器间的通信(lo);
  2. Pod和Pod之间的通信;
  3. Pod和service间的通信;
  4. servic与集群外客户端通信。

flannel下载:

https://github.com/coreos/flannel

下载命令

flannel:

flannel拥有三种工作模式:VxLAN,Host-gw,UDP
其中UDP因为比较古老而且性能很差所以现在不使用。

host-gw:

Host-gw的工作原理,其实就是在宿主机上,添加一条到达每个flannel子网的路由,这条路由的下一跳即网关就是相对应的flannel子网所在的“主机”。这些路由规则是flanneld根据容器部署的场景创建和更新的。
Host-gw是flannel中性能最好的模式,但有一定的局限性,宿主机与目标主机之间不能有其他网络。

VxLan:

VxLAN是flannel默认使用的工作模式,他的缺点就是开销会Host-gw但没有局限性。
VxLAN工作原理:



VxLAN

可以从图中看出他会在原数据包外添加额外包头来实现通信。
需要注意的是VxLAN还可以动态使用Host-gw。

flannel configmap字段说明:

  1. Network:用于为Pod配置网络功能;
    例子:10.244.0.0/16 =>
    master:10.244.0.0/24
    node:10.244.1.0/24
  2. SubnetLen:把Network切分子网各节点使用时,使用多长的掩码进行切分,默认为24为(切分效果如上个例子);
  3. SubnetMax:最大可以使用的网络地址;
  4. SubnetMin:最小可以使用的网络地址;
  5. Bckend下的Type:设置工作模式,如果需要虽然动态VxLan
"Backend": {
    "Type": "vxlan",
          "Directroutind": true
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Docker网络:可以在docker run的时候指定 bridge:这是Docker默认的网络驱动,此模式会为每...
    李潇_d8d7阅读 3,998评论 0 2
  • 一. 官方提供的三种部署方式 minikube Minikube是一个工具,可以在本地快速运行一个单点的Kuber...
    六弦极品阅读 5,522评论 0 2
  • Kubernetes是Google开源的容器集群管理系统,其提供应用部署、维护、 扩展机制等功能,利用Kubern...
    devabel阅读 11,493评论 0 13
  • 跨主机网络 跨主机网络方案包括:1、docker 原生的 overlay 和 macvlan。2、第三方方案:常用...
    阳一yayi阅读 6,044评论 0 5
  • “呯呯……”睡得迷迷糊糊的老谢被急促的敲门声惊醒。 “有什么事明天再说吧,我都睡了。”他生气的回了一句。 “哦,我...
    涓涓清流_00阅读 3,671评论 15 31

友情链接更多精彩内容