LoadBalanceasaService(LBaaS)是Neutron提供的一项高级网络服务。LBaaS允许租户在自己的网络中创建和管"/>

理解neutornlbaas-每天5分钟玩转openstack(120)

author author     2022-08-15     668

关键词:

技术分享

Load Balance as a Service(LBaaS)是 Neutron 提供的一项高级网络服务。
LBaaS 允许租户在自己的网络中创建和管理 load balancer。

load balancer 可以说是分布式系统中比较基础的组件。
它接收前端发来的请求,然后将请求按照某种均衡策略转发给后端资源池中的某个处理单元,以完成处理。
load balancer 可以实现系统高可用和横向扩展。

LBaaS 有三个主要的概念: Pool Member,Pool 和 Virtual IP

Pool Member
Pool Member 是 layer 4 的实体,拥有 IP 地址并通过监听端口对外提供服务。
例如 Pool Member 可以是一个 web server,IP 为 172.16.100.9 并通过 80 端口提供 HTTP 服务。

Pool
Pool 由一组 Pool Member 组成。 这些 Pool Member 通常提供同一类服务。
例如一个 web server pool,包含: web1:172.16.100.9:80 web2:172.16.100.10:80

Virtual IP
Virtual IP 也称作 VIP,是定义在 load balancer 上的 IP 地址。
每个 pool member 都有自己的 IP,但对外服务则是通过 VIP。

load balancer 负责监听外部的连接,并将连接分发到 pool member。
外部 client 只知道 VIP,不知道也不需要关心是否有 pool 或者有多少个 pool member。

OpenStack Neutron 目前默认通过 HAProxy 软件来实现 LBaaS。
HAProxy 是一个流行的开源 load balancer。
Neutron 也支持其他一些第三方 load balancer。

下图展示了 HAProxy 实现 load balancer 的方式。

技术分享

左图是 client 发送请求到 web server 的数据流:
1. Client 10.10.10.4 通过浏览器访问服务器的外网 IP 10.10.10.7。

2. 请求首先到达路由器,将目的地址设置为服务器的内网 VIP 172.16.100.11

3. VIP 设置在 load balancer 上,load balancer 收到请求后选择 pool member WEB1,
将数据包的目的 IP 设为 WEB1 的地址 172.16.100.9。

4. 在将数据包转发给 WEB1 之前,load balancer 将数据包的源 IP 修改为自己的 VIP 地址 172.16.100.11,
其目的是保证 WEB1 能够将应答数据发送回 load balancer。

5. WEB1 收到请求数据包。

右图是 web server 应答的数据流:

1. WEB1 将数据包发送给 load balancer。

2. load balancer 收到 WEB1 发回的数据后,将目的 IP 修改为 Client 的地址 10.10.10.4。 同时也将数据包的源 IP 修改为 VIP 地址 172.16.100.11,保证 Client 能够将后续的数据发送给自己。

3. load balancer 将数据发送给路由器。

4. 路由器将数据包的原地址恢复成服务器的外网 IP 10.10.10.7,然后发送给 Client。

5. Client 收到应答数据。

以上就是 Load Balance as a Service 的工作原理。
下节我们将开始实践 Neutron LBaaS。

技术分享

理解neutronfwaas-每天5分钟玩转openstack(117)

650)this.width=650;"src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20161124-1479989223359091731.jpg"/>前面我们学习了安全组,今天学习另一个与安全相关的服务--FWaaS。理解概念FirewallasaService(FWaaS)是Neutron的一个高级服务。用户 查看详情

理解virbr0-每天5分钟玩转openstack(11)

virbr0是KVM默认创建的一个Bridge,其作用是为连接其上的虚机网卡提供NAT访问外网的功能。virbr0默认分配了一个IP192.168.122.1,并为连接其上的其他虚拟网卡提供DHCP服务。下面我们演示如何使用virbr0。在virt-manager打开VM1的配置界面... 查看详情

理解neutronfwaas-每天5分钟玩转openstack(117)

...习了安全组,今天学习另一个与安全相关的服务--FWaaS。理解概念FirewallasaService(FWaaS)是Neutron的一个高级服务。用户可以用它来创建和管理防火墙,在subnet的边界上对layer3和layer4的流量进行过滤。传统网络中的防火墙一般放在... 查看详情

每天5分钟玩转容器技术整理目录

原 写在最前面-每天5分钟玩转容器技术(1)容器生态系统-每天5分钟玩转容器技术(2) 容器生态系统(续)-每天5分钟玩转容器技术(3)运行第一个容器-每天5分钟玩转容器技术(4)【视频】运行第一个容器-每天5分钟玩... 查看详情

理解容器之间的连通性-每天5分钟玩转docker容器技术(34)

通过前面小节的实践,当前dockerhost的网络拓扑结构如下图所示,今天我们将讨论这几个容器之间的连通性。650)this.width=650;"title="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170627-1498578337581027892.png"src="http://7xo6kd.com1.z0. 查看详情

通过例子理解k8s架构-每天5分钟玩转docker容器技术(122)

为了帮助大家更好地理解Kubernetes架构,我们部署一个应用来演示各个组件之间是如何协作的。执行命令kubectl run httpd-app --image=httpd --replicas=2等待一段时间,应用部署完成。Kubernetes部署了deployment httpd-app,有两... 查看详情

通过例子理解k8s架构-每天5分钟玩转docker容器技术(122)

为了帮助大家更好地理解Kubernetes架构,我们部署一个应用来演示各个组件之间是如何协作的。执行命令kubectl run httpd-app --image=httpd --replicas=2等待一段时间,应用部署完成。Kubernetes部署了deployment httpd-app,有两... 查看详情

《每天5分钟玩转容器技术》(转)

《每天5分钟玩转容器技术》《每天5分钟玩转容器技术》 查看详情

云计算与openstack-每天5分钟玩转openstack(14)

...度一下。CloudMan这里主要想从技术的角度谈谈对云计算的理解。基本概念所有的新事物都不是突然冒出来的,都有前世和今生。云计算也是IT技术不断发展的产物。要理解云计算,需要对IT系统架构的发展过程有所认识。请看下图... 查看详情

云计算与openstack-每天5分钟玩转openstack(14)

...度一下。CloudMan这里主要想从技术的角度谈谈对云计算的理解。基本概念所有的新事物都不是突然冒出来的,都有前世和今生。云计算也是IT技术不断发展的产物。要理解云计算,需要对IT系统架构的发展过程有所认识。请看下图... 查看详情

weavescope容器地图-每天5分钟玩转docker容器技术(80)

...特点是会自动生成一张Docker容器地图,让我们能够直观地理解、监控和控制容器。千言万语不及一张图,先感受一下。650)this.width=650;"title="https://image.ipaiban.com/upload-ueditor-image-20171012-1507775979926023290.png"src="https://image.ipaib 查看详情

最小的镜像-每天5分钟玩转容器技术

...和运行就可以了。但如果我们想创建自己的镜像,或者想理解Docker为什么 查看详情

最小的镜像-每天5分钟玩转容器技术

...和运行就可以了。但如果我们想创建自己的镜像,或者想理解Docker为什么 查看详情

最小的镜像-每天5分钟玩转容器技术

...和运行就可以了。但如果我们想创建自己的镜像,或者想理解Docker为什么 查看详情

云计算与openstack-每天5分钟玩转openstack(14)

...度一下。CloudMan这里主要想从技术的角度谈谈对云计算的理解。基本概念所有的新事物都不是突然冒出来的,都有前世和今生。云计算也是IT技术不断发展的产物。要理解云计算,需要对IT系统架构的发展过程有所认识。... 查看详情

weavescope容器地图-每天5分钟玩转docker容器技术(80)

...特点是会自动生成一张Docker容器地图,让我们能够直观地理解、监控和控制容器。千言万语不及一张图,先感受一下。下面开始实践WeaveScope。安装执行如下脚本安装运行WeaveScope。curl-Lgit.io/scope-o/usr/local/bin/scopechmoda+x/usr/local/bin/s... 查看详情

每天5分钟玩转kubernetes|networkpolicy(代码片段)

书籍来源:cloudman《每天5分钟玩转Kubernetes》一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持!附上汇总贴:每天5分钟玩转Kubernetes|汇总_COCOgsta的博客-CSDN博客NetworkPolicy... 查看详情

实现容器的底层技术-每天5分钟玩转docker容器技术(30)

为了更好地理解容器的特性,本节我们将讨论容器的底层实现技术。cgroup和namespace是最重要的两种技术。cgroup实现资源限额,namespace实现资源隔离。cgroupcgroup全称ControlGroup。Linux操作系统通过cgroup可以设置进程使用CPU、内存和IO... 查看详情