Skip to content

Commit

Permalink
fix 负载均衡
Browse files Browse the repository at this point in the history
  • Loading branch information
isno committed Jun 23, 2024
1 parent 5372247 commit b955f24
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 5 deletions.
4 changes: 2 additions & 2 deletions balance/summary.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
—— 摘自《编程珠玑》[^1]
:::

负载均衡是构建可靠分布式系统核心的概念之一,各类负载均衡器以各种形式在复杂的微服务架构、Kubernetes 等容器编排平台以及混合云环境发挥着关键作用。例如以分发流量和提升网络边缘的扩展性为目的的四层负载均衡 LVS、DPVS,在应用层发挥网关作用的 OpenResty、Kong,还有集群内部的各类的分布式治理框架 SpringCloud 中的 Ribbon 等等。
负载均衡是构建可靠分布式系统核心的概念之一,以分发流量和提升网络边缘的扩展性为目的的四层负载均衡 LVS、DPVS,在应用层发挥网关作用的 OpenResty、Kong,还有集群内部的各类的分布式治理框架 SpringCloud 中的 Ribbon 等等,它们在复杂的微服务架构、Kubernetes 容器编排平台以及混合云环境发挥着关键作用

不过,负载均衡器无论工作在什么位置或者以何种形式存在,核心的职责无外乎“**选择谁来处理用户请求**”和“**将用户请求转发过去**”,本章我们把握这两个职责去分析四层及七层负载均衡的设计模式、工作原理,从而深入理解各类负载均衡应用技术。
不过,负载均衡器无论工作在什么位置或者以何种形式存在,核心的职责无外乎“**选择谁来处理用户请求**”和“**将用户请求转发过去**”,本章我们把握这两个职责去分析四层及七层负载均衡的工作模式、设计原理,从而深入理解各类负载均衡应用技术。

:::center
![](../assets/balance-summary.png)<br/>
Expand Down
6 changes: 3 additions & 3 deletions network/macvlan.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ MACVLAN 是介绍的最后一种虚拟设备,在介绍 MACVLAN 先学习点前

MACVLAN 借用了 VLAN 子接口的思路,并且在这个基础上更进一步,不仅允许对同一个网卡设置多个 IP 地址,还允许对同一张网卡上设置多个 MAC 地址,这也是 MACVLAN 名字的由来。

原本 MAC 地址是网卡接口的“身份证”,应该是严格的一对一关系,而 MACVLAN 打破了这层关系。方法就是在物理设备之上、网络栈之下生成多个虚拟的 Device,每个 Device 都有一个 MAC 地址,新增 Device 的操作本质上相当于在系统内核中,注册了一个收发特定数据包的回调函数,每个回调函数都能对一个 MAC 地址的数据包进行响应,当物理设备收到数据包时,会先根据 MAC 地址进行一次判断,确定交给哪个 Device 来处理。
原本 MAC 地址是网卡接口的“身份证”,应该是严格的一对一关系,而 MACVLAN 打破了这层关系。方法就是在物理设备之上、网络栈之下生成多个“虚拟设备”,每个“虚拟设备”都有一个 MAC 地址,新增虚拟设备 的操作本质上相当于在系统内核中,注册了一个收发特定数据包的回调函数,每个回调函数都能对一个 MAC 地址的数据包进行响应,当物理设备收到数据包时,会先根据 MAC 地址进行一次判断,确定交给哪个“虚拟设备”来处理。

:::center
![](../assets/macvlan.svg)<br/>
Expand All @@ -38,9 +38,9 @@ MACVLAN 借用了 VLAN 子接口的思路,并且在这个基础上更进一步

用 MACVLAN 技术虚拟出来的副本网卡,在功能上和真实的网卡是完全对等的,此时真正的物理网卡实际上也确实承担着类似交换机的职责。在收到数据包后,物理网卡会根据目标 MAC 地址,判断这个包应该转发给哪块副本网卡处理(如图 3-28 所示),由同一块物理网卡虚拟出来的副本网卡,天然处于同一个 VLAN 之中,因此可以直接二层通信,不需要将流量转发到外部网络。

MACVLAN 本身跟 VLAN 没什么关系,如果不考虑虚拟化的概念,甚至可以理解为一个物理机插了多个网卡。但在容器里面通常跟 VLAN 结合使用(因为一个宿主机的上百个容器可能属于不同的 VLAN)。
MACVLAN 本身跟 VLAN 没什么关系,如果不考虑虚拟化的概念,甚至可以理解为一个物理机插了多个网卡。但在容器里面通常跟 VLAN 结合使用(因为一个主机的上百个容器可能属于不同的 VLAN)。

如图 3-29 所示,一台宿主机上面可以虚拟出多块 VLAN 网卡,宿主机和交换机的链路在 trunk 模式下,同一链路根据不同报文内的 vlanID 如(10、20、30)组成逻辑信道,互不干扰。
如图 3-29 所示,一台主机上面虚拟出多块 VLAN 网卡,主机和交换机的链路在 trunk 模式下,同一链路根据不同报文内的 vlanID 如(10、20、30)组成逻辑信道,互不干扰。

:::center
![](../assets/macvlan-veth.svg)<br/>
Expand Down

0 comments on commit b955f24

Please sign in to comment.