公网环境运行Ceph Pacific集群的网络配置问题咨询
日志含义
该INFO级日志是Ceph Orchestrator(编排器)调度Monitor节点时输出的校验提示:你未显式配置集群的public_network参数,当前该配置值为空,并非你推测的默认0.0.0.0。编排器调度Monitor时会校验节点IP是否属于public_network定义的网段,由于配置为空所有节点都不满足校验条件,因此输出过滤提示。该日志本身不影响现有业务访问,但说明集群网络配置存在缺失,会影响后续自动化运维操作。
现有配置合理性分析
- 当前可正常运行的原因:你手动指定了Monitor的公网IP监听地址,且配置了
cluster_network为10.0.0.0/16,集群内部的心跳、数据复制流量走私网,公网客户端通过指定的Monitor公网IP可正常访问集群,加上已配置防火墙做访问限制,因此当前业务无异常。 - 存在的风险:
- 未显式配置
public_network,后续编排器自动扩容、重建Monitor或其他公共服务时,会因节点校验不通过失败,无法完成自动化故障恢复,降低集群可用性。 /etc/hosts配置存在缺失,node1的私网IP、公网IP解析均被注释,当前node1主机名解析指向127.0.1.1回环地址,集群内部节点之间访问node1时存在通信异常风险。- 未显式配置
public_network的情况下,OSD等服务的公共访问接口会默认绑定到节点默认路由对应的网卡,若后续节点路由规则变更,会出现公网客户端无法访问OSD的问题。
- 未显式配置
调整方案
- 统一所有Ceph节点的
/etc/hosts配置,解开注释的node1私网IP和公网IP解析,确保每个节点的主机名可优先解析到私网IP,域名可解析到公网IP,示例配置如下:
127.0.0.1 localhost 10.0.0.2 node1 10.0.0.3 node2 10.0.0.4 node3 23.aa.bb.cc node1.foo.com 23.dd.ee.ff node2.foo.com 23.gg.hh.ii node3.foo.com
- 显式配置全局
public_network参数,填入你Ceph节点公网IP对应的CIDR网段,多个网段用逗号分隔,示例命令如下:
sudo ceph config set global public_network "23.aa.bb.0/24,23.dd.ee.0/24,23.gg.hh.0/24"
注意:请将上述示例的CIDR替换为你实际公网IP所属的网段,若需要允许私网客户端也能访问集群,可将
10.0.0.0/16也加入public_network列表。
- 配置完成后验证参数是否生效:
ceph config get global public_network
配置生效后,相关的INFO日志就会停止输出,后续编排器也可以正常调度公共服务。
内容的提问来源于stack exchange,提问作者Ralph
相关产品推荐
相关产品推荐

