参数列表
Module:
Categories:
ETCD 是一个分布式的、可靠的键-值存储,用于存放系统中最为关键的数据。在 Pigsty 中,etcd 作为高可用组件 Patroni 使用的 DCS,它对于 PG 的高可用非常重要。
Pigsty 为 etcd 集群使用一个硬编码的默认集群组名 etcd,它可以是一套现有的外部 etcd 集群,或者是默认由 Pigsty 使用 etcd.yml 剧本部署创建的新etcd集群。
参数列表
ETCD 模块有 10 个相关参数:
| 参数 | 类型 | 级别 | 注释 | 
|---|---|---|---|
| etcd_seq | int | I | etcd 实例标识符,必填 | 
| etcd_cluster | string | C | etcd 集群名,默认固定为 etcd | 
| etcd_safeguard | bool | G/C/A | etcd 防误删保险,阻止清除正在运行的 etcd 实例? | 
| etcd_clean | bool | G/C/A | etcd 清除指令:在初始化时清除现有的 etcd 实例? | 
| etcd_data | path | C | etcd 数据目录,默认为 /data/etcd | 
| etcd_port | port | C | etcd 客户端端口,默认为 2379 | 
| etcd_peer_port | port | C | etcd 同伴端口,默认为 2380 | 
| etcd_init | enum | C | etcd 初始集群状态,新建或已存在 | 
| etcd_election_timeout | int | C | etcd 选举超时,默认为 1000ms | 
| etcd_heartbeat_interval | int | C | etcd 心跳间隔,默认为 100ms | 
默认参数
Etcd 模块的默认参数定义于 roles/etcd/defaults/main.yml
#-----------------------------------------------------------------
# etcd
#-----------------------------------------------------------------
#etcd_seq: 1                      # etcd instance identifier, explicitly required
etcd_cluster: etcd                # etcd cluster & group name, etcd by default
etcd_safeguard: false             # prevent purging running etcd instance?
etcd_clean: true                  # purging existing etcd during initialization?
etcd_data: /data/etcd             # etcd data directory, /data/etcd by default
etcd_port: 2379                   # etcd client port, 2379 by default
etcd_peer_port: 2380              # etcd peer port, 2380 by default
etcd_init: new                    # etcd initial cluster state, new or existing
etcd_election_timeout: 1000       # etcd election timeout, 1000ms by default
etcd_heartbeat_interval: 100      # etcd heartbeat interval, 100ms by default
etcd_seq
参数名称: etcd_seq, 类型: int, 层次:I
etcd 实例标号, 这是必选参数,必须为每一个 etcd 实例指定一个唯一的标号。
以下是一个3节点etcd集群的示例,分配了 1 ~ 3 三个标号。
etcd: # dcs service for postgres/patroni ha consensus
  hosts:  # 1 node for testing, 3 or 5 for production
    10.10.10.10: { etcd_seq: 1 }  # etcd_seq required
    10.10.10.11: { etcd_seq: 2 }  # assign from 1 ~ n
    10.10.10.12: { etcd_seq: 3 }  # odd number please
  vars: # cluster level parameter override roles/etcd
    etcd_cluster: etcd  # mark etcd cluster name etcd
    etcd_safeguard: false # safeguard against purging
    etcd_clean: true # purge etcd during init process
etcd_cluster
参数名称: etcd_cluster, 类型: string, 层次:C
etcd 集群 & 分组名称,默认值为硬编码值 etcd。
当您想要部署另外的 etcd 集群备用时,可以修改此参数并使用其他集群名。
etcd_safeguard
参数名称: etcd_safeguard, 类型: bool, 层次:G/C/A
安全保险参数,防止清除正在运行的etcd实例?默认值为 false。
如果启用安全保险,etcd.yml 剧本不会清除正在运行的etcd实例。
etcd_clean
参数名称: etcd_clean, 类型: bool, 层次:G/C/A
在初始化时清除现有的 etcd ?默认值为true。
如果启用,etcd.yml 剧本将清除正在运行的 etcd 实例,这将使其成为一个真正幂等的剧本(总是抹除现有集群)。
但是如果启用了etcd_safeguard,即使设置了此参数,剧本依然会在遇到运行中的 etcd 实例时中止,避免误删。
etcd_data
参数名称: etcd_data, 类型: path, 层次:C
etcd 数据目录,默认为/data/etcd 。
etcd_port
参数名称: etcd_port, 类型: port, 层次:C
etcd 客户端端口号,默认为2379。
etcd_peer_port
参数名称: etcd_peer_port, 类型: port, 层次:C
etcd peer 端口,默认为 2380 。
etcd_init
参数名称: etcd_init, 类型: enum, 层次:C
etcd初始集群状态,可以是new或existing,默认值:new。
默认将创建一个独立的新etcd集群,当尝试向现有etcd集群 添加新成员 时,应当使用 existing。
etcd_election_timeout
参数名称: etcd_election_timeout, 类型: int, 层次:C
etcd 选举超时,默认为 1000 (毫秒),也就是 1 秒。
etcd_heartbeat_interval
参数名称: etcd_heartbeat_interval, 类型: int, 层次:C
etcd心跳间隔,默认为 100 (毫秒)。