当前位置: 首页 > news >正文

k8s网络类型

k8s中的通信模式:

  1. pod内部之间容器与容器之间的通信。  

   在同一个pod中的容器共享资源和网络,使用同一个网络命名空间。可以直接通信的。

  1. 同一个node节点之内,不同pod之间的通信。

   每一个pod都有一个全局的真实的IP地址,同一个node直接的不同pod可以直接使用对方pod的IP地址进行通信。

Pod1 和pod2 是通过docker0的网桥来进行通信。

  1. 不同node节点的和不同pod之间如何通信。

Cni的插件:

cni是一个标准接口,用于容器运行时调用网络插件,配置容器网络,负责设置容器的网络命名空间,IP地址,路由等等参数。

   Fiannel插件:功能就是让集群之中不同节点的docker容器具有全集群唯一的虚拟ip地址。

   overlay网络:在底层物理网络的基础上,创建第一个逻辑的网络层,二层+三层的集合 二层是物理网络。三层是逻辑上的网络层。

   overlay网络也是一种网络虚拟化的技术。

 Flannel支持的数据转发方式:

  1. udp模式。默认模式,应用转发,配置简单。但是性能最差。
  2. Vxlan,基于内核转发,也是常用的网络类型(小集群都是用这个)
  3. host-gw(性能最好,但是配置麻烦。)

   Udp:基于应用转发,flannel提供路由表,flannel封装数据包,解封装

  Node都会有一个flannel的虚拟网卡。 基于应用层,用户

Vxlan:使用的就是overlay的虚拟隧道通信技术。二层加三层的模式。

       Vxlan:flannel提供路由表,内核封装解封装。

Flannel1.1接口用的vxlan。

Flannel作用:

每个发向容器的数据包进行封装,vxlan通过vtep打包数据,由内核封装数据包---->转发到目标node节点。到达目标节点,还有一个解分装的过程,再发送目标pod.性那能是有一定的影响。

Calico插件:

采用直接路由的方式。BGP路由。不需要修改报文,统一直接通过路由表转发路由表会很复杂,运行维护的要求比价高。

BGP模式的特点:交换路由信息的外部网关协议,可以链接不同放入节点,node节点可能不是一个网段,BGP实现可靠的,最佳的,动态的路由选择。自动识别相邻的路由设备。

Calico不使用overlay,也不需要交换,直接通过虚拟路由实现。每一台虚拟路由都通过BGP转发。

核心组件:

Felix:也是运行在主机的一个个pod,一个进程,k8s  daemonset的方式部署的pod

Daemont set 会在每个node节点部署相同的pod,后台的运行方式。

负载宿主机上插入路由规则,维护calico需要的网络设备。网络接口管理,监听。路由等等。

BGP client:bird BGP客户端,专门负责在集群中分发路由规则的信息。每一个节点都会有一个BGP client。

BGP协议广播方式通知其他节点,分发路由的规则,实现网络互通。

Etcd:保存路由信息,负责网络元数据的一致性,保证网络状态的一致性和准确。

Calico的工作原理:

路由表来维护每个pod之间的通信。

创建好pod之后,添加一个设备calico  veth pair设备。

虚拟网卡:veth pair是一对设备,虚拟的以太网设备。

一头连接在容器的网络命名空间,

另一头链接宿主机的网络命名空间  calico

IP地址分配:veth pair连接容器的部分给容器分配一个IP地址,这个IP地址是唯一标识,宿主机也会被 veth pair分配calico网络的内部IP地址。和其他节点上的容器进行通信。

Veth设备,容器发出的IP地址通过veth pair设备到宿主机,宿主机根据路由规则的下一跳地址发送到网关(目标宿主机)

数据包到达目标宿主机,veth pair 设备,目标宿主机也是根据路由规则,下一跳地址,转发到目标容器。

在ipip模式:会形成一个tunnel隧道。数据包封装都在tunnel隧道内部打包。封装:宿主机IP 容器内部的IP地址。

在k8s中常用的网络类型:flannel和calico

Flannel:配置简单,功能简单,基于overlay叠加网络实现。在物理层的网络在封装一个虚拟的网络

Vxlan是虚拟三层网络

Udp是默认模式

Vxlan最多的模式 vni + ip 进行转发,flannel提供路由表,内核封装解封装

host-gw

由于封装和解封装的过程,对数据传输的性能会有影响,没有网络策略配置的功能udp(协议) 默认网段:10.244.0.0/16

Calico:功能强大,基于路由表进行转发,没有解封装和封装的过程。具备网络策略的配置能力,但是路由表维护起来复杂。  

模式:ipip   BGP

BGP:通过ip 路由表的前缀来实现目标主机的可达性。

对比ipip模式。BGP模式没有隧道,BGP模式下,pod的数据包直接通过网卡发送到目的地。

Ipip的隧道:隧道进行数据包的封装IPV4----IPV4.

简单的小集群:flannel

扩容,配置网络策略:calico

http://www.lryc.cn/news/268879.html

相关文章:

  • Seata 中封装了四种分布式事务模式,分别是: AT 模式, TCC 模式, Saga 模式, XA 模式,
  • 为什么设计制造行业需要数据加密?
  • 查看ios app运行日志
  • 怎么卸载macOS上的爱思助手如何卸载macOS上的logitech g hub,如何卸载顽固macOS应用
  • 侦探IP“去推理化”:《名侦探柯南》剧场版走过26年
  • 图论 经典例题
  • Oracle数据updater如何回滚
  • redis开启密码验证
  • 一种删除 KubeSphere 中一直卡在 Terminating 的 Namespace--KubeSphere Logging System的简单方法
  • Flink1.17实战教程(第七篇:Flink SQL)
  • nest定时任务调用service报错
  • [Angular] 笔记 11:可观察对象(Observable)
  • 【论文阅读】Resource Allocation for Text Semantic Communications
  • VMware16 pro 安装openEuler-23.09-x86_64,详细操作流程+详图。
  • Mybatis 动态 SQL - script,bind,多数据库支持
  • Scikit-Learn线性回归(一)
  • Mybatis 动态 SQL - choose, when, otherwise
  • idea Spring Boot项目使用JPA创建与数据库链接
  • redis基础知识
  • 最短路径(数据结构实训)(难度系数100)
  • 基于SSM实现的电动汽车充电网点管理系统
  • Android ImageView如何使用.svg格式图片
  • 力扣热题100道-子串篇
  • day3--Shell
  • 【数据结构】插入排序、选择排序、冒泡排序、希尔排序、堆排序
  • TiDB 7.5 LTS 发版丨提升规模化场景下关键应用的稳定性和成本的灵活性
  • 服务器数据恢复-误操作导致xfs分区数据丢失的数据恢复案例
  • 安装Kubernetes1.23、kubesphere3.4、若依项目自动打包部署到K8S记录
  • (三) `MaterializedMySQL`同步机制解读
  • 使用 stream 流构建树(不使用递归)