HAProxy 改进¶
- 日期:
2015-09-04 14:00
- 标签:
haproxy,生产环境使用
可以通过添加一些更改来改进 HA Proxy
使其真正实现 HA
允许配置界面轻松适应负载
仅部署清单中部署的服务配置。
改进后端配置,例如 galera,或调整计时器值以提高效率
https://blueprints.launchpad.net/openstack-ansible/+spec/role-haproxy-v2
问题描述¶
社区已经提出了一些功能需求
HAProxy 的 HA
启用统计信息并改进 HAProxy 的可管理性
限制 HAProxy 的不必要的检查
提议的变更¶
为 HAProxy 实现 keepalived
将标准的 HAProxy 角色更改为添加管理工具(socket 和 stats 上的 admin 级别)
删除 vars/ 文件夹中的大型 HAProxy 变量
按组件提供此信息(在 group_vars 中),并允许用户覆盖(user_variables 或按组件)。然后
delegate将配置委托给 HAProxy 主机。引入一个跳过变量,如果您希望在某些组件上部署 HAProxy,但在其他组件上不部署
备选方案¶
等待 ansible2 具有在每个任务/ playbook 的基础上对字典进行变量合并/清理的功能。
Playbook/Role 影响¶
playbook haproxy-install.yml 将被完全覆盖。
由于 delegate to,HAProxy playbook 的运行时间会更长。
升级影响¶
无。
安全影响¶
无变化
性能影响¶
通过以下方式提高性能
减少对后端的无用检查
添加一种简单的方法来设置后端计时器的自定义值。
最终用户影响¶
无变化
部署者影响¶
默认配置无变化
部署者可以覆盖每个组件的
haproxy_service_configs
开发人员影响¶
乍一看没有影响。
依赖项¶
无
实现¶
负责人¶
无
工作项¶
Keepalived: https://review.openstack.org/#/c/217517/
易于管理: https://review.openstack.org/#/c/215019/ 和 https://review.openstack.org/#/c/214110/
默认配置更少静态
使用“delegate_to”和“when” haproxy_component_skip(如果您希望在某些组件上部署 HAProxy,但在其他组件上不部署)重写 haproxy-install
在 group_vars 下为每个组件创建一个包含默认变量的文件
默认计时器值更改。
测试¶
此更改是否会影响 gating 的方式?
如果合并,haproxy-install playbook 将会发生变化。
此更改是否可以基于 每次提交 进行测试?
是
考虑到 OpenStack Infra 中实例大小的限制(8GB Ram,vCPUs <= 8),测试是否可以在资源受限的环境中运行?
无变化
鉴于当前的限制(可用的特定硬件/软件配置),此测试是否无法进行?如果是这样,是否有缓解计划,以便在第三方测试、gate 增强等方式下测试此更改?
否
如果服务不是 OpenStack 特定的,我们如何测试更改?
运行新的 playbook
文档影响¶
对于那些更改 HAProxy 默认配置的人(当前未记录),此更改将修改他们当前的配置,因此需要记录。跳过变量和按组件覆盖的说明也应该添加到文档中。
参考资料¶
无