理解 Neutorn LBaaS - 每天5分钟玩转 OpenStack(120)

本文涉及的产品
网络型负载均衡 NLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
简介:

5.5.png

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。

二维码+指纹.png


本文转自CloudMan6 51CTO博客,原文链接:http://blog.51cto.com/cloudman/1878753

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
网络协议 Linux 网络安全
openstack 云平台一体化部署(超详细)
openstack 云平台一体化部署(超详细)
1364 0
openstack 云平台一体化部署(超详细)
|
消息中间件 Kubernetes 关系型数据库
教程get | K8S部署OpenStack容器云(下)
如何借助OpenStack Kolla-K8S项目,通过K8S对OpenStack进行容器化部署?并最终部署一套All-In-One类型的OpenStack容器云?让我们继续部署: 部署kolla-kubernetes ■  覆盖默认的RBAC设置 通过kubectl replace命令进行默.
4706 0
|
5月前
|
消息中间件 缓存 Shell
跟我一起来学OpenStack部署
跟我一起来学OpenStack部署
371 0
|
6月前
|
存储 数据安全/隐私保护 Docker
Kolla-ansible部署openStack
Kolla-ansible部署openStack
516 11
|
存储 弹性计算 资源调度
openstack组件部署 3
openstack组件部署
167 0
|
8月前
|
Linux 网络安全 数据库
openstack 部署单节点
在CentOS 7系统上,配置了一台拥有4核CPU、8GB内存和300GB磁盘的服务器,安装了OpenStack Trian版本。安装完成后,获取了OpenStack管理控制台的登录凭证(admin用户和密码),可访问IP地址192.168.200.249/dashboard进行登录。如果遇到问题,可能需要重新安装以确保纯净环境。
352 0
|
8月前
|
存储 Ubuntu KVM
Ubuntu部署OpenStack踩坑指南:还要看系统版本?
Ubuntu部署OpenStack踩坑指南:还要看系统版本?
Ubuntu部署OpenStack踩坑指南:还要看系统版本?
|
8月前
|
存储 安全 Linux
云计算|OpenStack|社区版OpenStack安装部署文档(一 --- 前期硬件准备和部署规划)
云计算|OpenStack|社区版OpenStack安装部署文档(一 --- 前期硬件准备和部署规划)
1512 0