PIGSTY

配置

节点身份、DNS、VIP、数据目录和 haproxy 服务

您不需要显式定义节点集群和节点实例。 它通常由其他数据库 模块 的集群定义暗示。 如果您定义了一个 PGSQL 集群,它会隐式定义一个节点集群。

但在某些情况下,您可能希望使用显式命名的节点集群/实例。 例如运行专用用途的节点组(例如,haproxy 组、节点缓冲池等)


身份参数

Pigsty 使用节点的主要 IPv4 地址(inventory_hostname)作为其身份。

名称类型级别必要性注释
inventory_hostnameip-必需节点 IP
nodenamestringI可选节点名称
node_clusterstringC可选节点集群名称

nodenamenode_cluster 可以用作监控目的的可选次要身份。

节点集群示例
node-test:
  hosts:
    10.10.10.11: { nodename: node-test-1 }
    10.10.10.12: { nodename: node-test-2 }
    10.10.10.13: { nodename: node-test-3 }
  vars:
    node_cluster: node-test

当您只想监控这些节点而不是在其上运行数据库时,这会很有用。


借用身份

因为 Pigsty 在 NODE 和 PG 实例之间使用 1:1 映射(每个节点只有一个 PG 实例), 节点的身份可以从相应的 PG 实例借用:

名称标签级别借用身份注释
nodenameinsI{{ pg_cluster }}-{{ pg_seq }}PG 实例名称
node_clusterclsC{{ pg_cluster }}PG 集群名称

这是默认行为,在监控系统中让 PG 和 NODE 具有相同的 cls / ins 身份标签很方便。 这可以通过将 node_id_from_pg 参数覆盖为 false 来禁用。

如果没有定义相应的 PG 实例,也没有明确定义 nodenamenode_cluster, 节点将被标记为 clsnodesins 为当前主机名。


SSH 连接

inventory_hostnameAnsible 用于通过 SSH 连接到节点。

如果您的节点无法通过 ssh <inventory_hostname> 简单访问,可以使用 ssh 别名 和更多 ansible 连接参数(甚至不同的 IP)。 但 inventory_hostname 仍然是节点的核心身份。

ssh 参数示例
node-test:
  hosts:
    10.10.10.11: { nodename: node-test-1 , ansible_host: node-1 }
    10.10.10.12: { nodename: node-test-2 , ansible_host: 192.168.0.1 , ansible_port: 2222 , ansible_user: root }
  vars:
    node_cluster: node-test