集群配置

如何配置 Infra 节点?定制 Nginx 服务器的配置与本地软件仓库的内容?配置 DNS,NTP 与监控组件的方法。

配置说明

INFRA 主要用于提供 监控 基础设施,对于 PostgreSQL 数据库是 可选项

除非您在某些地方手工配置了对 INFRA 节点上 DNS / NTP 服务的依赖,否则 INFRA 模块的故障通常不会影响 PostgreSQL 数据库集群的正常运行。

在大多数情况下,单个 INFRA 节点足以应对绝大部分场景的需求。对于有一定要求的生产环境,建议使用 2~3 个 INFRA 节点以实现高可用。

通常出于提高资源利用率的考虑,PostgreSQL 高可用依赖的 ETCD 模块可以与 INFRA 模块共用节点。

使用 3 个以上的 INFRA 节点没有太大意义,但您可以使用更多的 ETCD 节点(例如 5 个)来提高 DCS 服务的可用性与可靠性。


配置样例

要在节点上安装 INFRA 模块,首先需要在 配置清单 中的 infra 分组加入节点 IP,并为其分配 Infra 实例号 infra_seq

默认情况下,配置单个 INFRA 节点便足以满足大部分场景下的需求,所有配置模板都默认带有 infra 分组的定义:

all:
  children:
    infra: { hosts: { 10.10.10.10: { infra_seq: 1 } }}

默认情况下,infra 分组中的 10.10.10.10 IP 占位符会在 配置 过程中被替换为 当前节点首要IP地址。 也就是会在当前节点上安装 INFRA 模块。

然后,使用 infra.yml 剧本在节点上初始化 INFRA 模块即可。

更多节点

配置两个 INFRA 节点,可以将新节点 IP 加入 infra.hosts

all:
  children:

    infra:
      hosts:
        10.10.10.10: { infra_seq: 1 }
        10.10.10.11: { infra_seq: 2 }

配置三个 INFRA 节点,并配置一些 Infra 集群/节点的参数:

all:
  children:

    infra:
      hosts:
        10.10.10.10: { infra_seq: 1 }
        10.10.10.11: { infra_seq: 2, repo_enabled: false }
        10.10.10.12: { infra_seq: 3, repo_enabled: false }
      vars:
        grafana_clean: false
        prometheus_clean: false
        loki_clean: false

Infra 高可用

Infra 模块中的大部分组件都属于 “无状态/相同状态” ,对于这类组件,高可用只需要操心 “负载均衡” 问题。

Infra 组件负载均衡可以通过两种方式实现: Keepalived L2 VIP,或 HAProxy 四层负载均衡。

如果您的网络环境二层互通,则可以使用 Keepalived L2 VIP 实现高可用。

infra:
  hosts:
    10.10.10.10: { infra_seq: 1 }
    10.10.10.11: { infra_seq: 2 }
    10.10.10.12: { infra_seq: 3 }
  vars:
    vip_enabled: true
    vip_vrid: 128
    vip_address: 10.10.10.8
    vip_interface: eth1

    infra_portal:
      home         : { domain: h.pigsty }
      grafana      : { domain: g.pigsty ,endpoint: "10.10.10.8:3000" , websocket: true }
      prometheus   : { domain: p.pigsty ,endpoint: "10.10.10.8:9090" }
      alertmanager : { domain: a.pigsty ,endpoint: "10.10.10.8:9093" }
      blackbox     : { endpoint: "10.10.10.8:9115" }
      loki         : { endpoint: "10.10.10.8:3100" }

除了设置 vip_address 等 VIP 相关参数外,您还需要在 infra_portal 中修改各项 Infra 服务的端点。


Nginx配置


本地仓库配置


DNS配置


NTP配置





最后修改 2025-04-08: update tasks and infra docs (2085572)