Ceph-Ansible 中 Dashboard VIP 配置的注意事项
背景介绍
在 Ceph 集群部署中,Dashboard 是一个重要的管理界面组件。很多管理员希望通过虚拟 IP (VIP) 来实现 Dashboard 的高可用访问。本文基于 Ceph-Ansible 项目中的一个实际案例,探讨如何正确配置 Dashboard 的 VIP 访问。
常见误区
许多管理员误以为在 Ceph-Ansible 的配置文件中简单设置 dashboard_frontend_vip 参数就能自动完成 VIP 配置。实际上,Ceph-Ansible 并不会自动配置 VIP 地址,这个参数仅用于告诉 Dashboard 组件应该监听哪个 VIP 地址。
正确配置方法
要实现 Dashboard 的 VIP 访问,需要以下步骤:
-
预先配置 VIP:在运行 Ceph-Ansible 之前,必须先在监控节点上手动配置好 VIP。可以通过网络接口别名或 keepalived 等工具实现。
-
HAProxy + Keepalived 方案:更专业的做法是使用 HAProxy 做负载均衡,配合 Keepalived 实现 VIP 漂移。这种方案不仅能提供高可用性,还能实现负载均衡。
配置示例
基础 VIP 配置
在监控节点的网络接口配置中添加:
auto br-host:0
iface br-host:0 inet static
address 192.168.20.99
netmask 255.255.255.255
专业 HAProxy + Keepalived 配置
HAProxy 配置示例:
global
log stdout format raw local0
maxconn 2048
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
user haproxy
group haproxy
daemon
defaults
mode http
timeout client 5s
timeout connect 5s
timeout server 5s
timeout http-request 5s
frontend http-in
bind *:8090
default_backend servers
backend servers
option httpchk
http-check expect status 200
server server1 192.168.20.2:7443 check
server server2 192.168.20.3:7443 check
server server3 192.168.20.4:7443 check
Keepalived 配置示例:
vrrp_instance VI_1 {
state MASTER
interface enp1s0
virtual_router_id 51
priority 101
authentication {
auth_type PASS
auth_pass password
}
virtual_ipaddress {
192.168.20.99/24
}
track_script {
chk_haproxy
}
}
最佳实践建议
-
生产环境推荐:对于生产环境,强烈建议使用 HAProxy + Keepalived 方案,而不是简单的 VIP 配置。
-
SSL/TLS 配置:虽然示例中展示了基础配置,但在实际生产环境中应该配置 SSL/TLS 加密。
-
健康检查:确保配置了适当的健康检查机制,如示例中的 HTTP 状态码检查。
-
端口规划:合理规划服务端口,避免与现有服务冲突。
总结
Ceph-Ansible 虽然提供了 dashboard_frontend_vip 参数,但不会自动配置 VIP。管理员需要预先配置好 VIP 或使用专业的负载均衡方案。通过 HAProxy + Keepalived 的组合,可以构建一个高可用、负载均衡的 Dashboard 访问方案,这是生产环境中的推荐做法。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0218
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook0139
uni-appA cross-platform framework using Vue.jsJavaScript09
GLM-5.2智谱开源 GLM-5.2,这是针对长文本任务的最新旗舰模型。相较于前代产品 GLM-5.1,它在长文本任务处理能力上实现了显著飞跃,并且首次在稳定的 100 万 token 上下文中提供这一能力。Jinja00
SwanLab⚡️SwanLab - an open-source, modern-design AI training tracking and visualization tool. Supports Cloud / Self-hosted use. Integrated with PyTorch / Transformers / LLaMA Factory / veRL/ Swift / Ultralytics / MMEngine / Keras etc.Python00
tiny-universe《大模型白盒子构建指南》:一个全手搓的Tiny-UniverseJupyter Notebook03