kube-ovn underlay vlan 模式 默认网络使用lb

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kube-ovn underlay vlan 模式 默认网络使用lb相关的知识,希望对你有一定的参考价值。

参考技术A 关于lb一般要支持以下功能:

在当前服务架构中,负载均衡设备(或者代理设备)常被使用,当我们使用了负载均衡/代理设备之后,服务器端通常看到的是代理设备的IP地址。在HTTP协议下,通常在代理设备上会追加X-Forward-For头,用于存放原始客户端的IP地址,这样服务器端可以看到原始客户端IP。但是在UDP/TCP四层情况下,不存在可以追加Client IP信息的字段。Proxy Protocol是可以用来解决UDP/TCP四层情况下服务器端获取IP地址的问题。他工作在4层和7层之间,追加了一个Proxy Protocol头部,用于记录客户端地址信息。

代理协议(Proxy protocol),是HAProxy的作者Willy Tarreau于2010年开发和设计的一个Internet协议,通过为tcp添加一个很小的头信息,来方便的传递客户端信息(协议栈、源IP、目的IP、源端口、目的端口等),在网络情况复杂又需要获取用户真实IP时非常有用。

代理协议分为V1和V2两个版本,V1是人类易读的,V2是二进制格式的。

注意点:
Proxy protocol需要两个角色sender和receiver,
sender在与receiver之间建立连接后,会先发送一个带有客户信息的tcp header,
因为更改了tcp协议,需receiver也支持Proxy protocol,否则不能识别tcp包头,导致无法成功建立连接。

二、 kube-ovn 关于lb的使用

ovn 关于lb的设计有两种,使用方式: https://hustcat.github.io/ovn-lb-practice/


router-lb
switch-lb

ovn lb的初始化

如上 kube-ovn underlay vlan default网络pod访问svc直接走的是logic switch lb 走dnat 访问到 svc对应的后端 pod 的endpoint

当前基于provider ovs 网桥多加一个host ns上的网卡也可以用来中转访问svc,就像ipvlan的hostns中的子接口的作用一样。

扩展:

ovn lb 支持udp 和 tcp,ipv6应该也已经支持了,但是不支持proxy protocol

注意点:

ovn router lb 需要额外的vpc subnet ip 来构造tcp udp的健康检查包,所以会多消耗一倍的vpc 后端ip

参考:

以上是关于kube-ovn underlay vlan 模式 默认网络使用lb的主要内容,如果未能解决你的问题,请参考以下文章

VLAN ,VXLAN和overlay

2022 Kube-OVN开源社区年度报告

kube-OVN总体架构

Docker网络 overlay模式

实践案例 | 用Kube-OVN实现跨K8s的统一网络平面部署TiDB

#yyds干货盘点#快速搭建kube-ovn环境