etcd配置介绍

一 示例yml配置文件

# This is the configuration file for the etcd server.

 

# Human-readable name for this member.

name: 'default'

# Path to the data directory.

data-dir:

 

# Path to the dedicated wal directory.

wal-dir:

 

# Number of committed transactions to trigger a snapshot to disk.

snapshot-count: 10000

 

# Time (in milliseconds) of a heartbeat interval.

heartbeat-interval: 100

 

# Time (in milliseconds) for an election to timeout.

election-timeout: 1000

 

# Raise alarms when backend size exceeds the given quota. 0 means use the

# default quota.

quota-backend-bytes: 0

 

# List of comma separated URLs to listen on for peer traffic.

listen-peer-urls: http://localhost:2380

 

# List of comma separated URLs to listen on for client traffic.

listen-client-urls: http://localhost:2379

 

# Maximum number of snapshot files to retain (0 is unlimited).

max-snapshots: 5

 

# Maximum number of wal files to retain (0 is unlimited).

max-wals: 5

 

# Comma-separated white list of origins for CORS (cross-origin resource sharing).

cors:

 

# List of this member's peer URLs to advertise to the rest of the cluster.

# The URLs needed to be a comma-separated list.

initial-advertise-peer-urls: http://localhost:2380

 

# List of this member's client URLs to advertise to the public.

# The URLs needed to be a comma-separated list.

advertise-client-urls: http://localhost:2379

 

# Discovery URL used to bootstrap the cluster.

discovery:

 

# Valid values include 'exit', 'proxy'

discovery-fallback: 'proxy'

 

# HTTP proxy to use for traffic to discovery service.

discovery-proxy:

 

# DNS domain used to bootstrap initial cluster.

discovery-srv:

 

# Initial cluster configuration for bootstrapping.

initial-cluster:

 

# Initial cluster token for the etcd cluster during bootstrap.

initial-cluster-token: 'etcd-cluster'

 

# Initial cluster state ('new' or 'existing').

initial-cluster-state: 'new'

 

# Reject reconfiguration requests that would cause quorum loss.

strict-reconfig-check: false

 

# Accept etcd V2 client requests

enable-v2: true

 

# Enable runtime profiling data via HTTP server

enable-pprof: true

 

# Valid values include 'on', 'readonly', 'off'

proxy: 'off'

 

# Time (in milliseconds) an endpoint will be held in a failed state.

proxy-failure-wait: 5000

 

# Time (in milliseconds) of the endpoints refresh interval.

proxy-refresh-interval: 30000

 

# Time (in milliseconds) for a dial to timeout.

proxy-dial-timeout: 1000

 

# Time (in milliseconds) for a write to timeout.

proxy-write-timeout: 5000

 

# Time (in milliseconds) for a read to timeout.

proxy-read-timeout: 0

 

client-transport-security:

# Path to the client server TLS cert file.

cert-file:

 

# Path to the client server TLS key file.

key-file:

 

# Enable client cert authentication.

client-cert-auth: false

 

# Path to the client server TLS trusted CA cert file.

trusted-ca-file:

 

# Client TLS using generated certificates

auto-tls: false

 

peer-transport-security:

# Path to the peer server TLS cert file.

cert-file:

 

# Path to the peer server TLS key file.

key-file:

 

# Enable peer client cert authentication.

client-cert-auth: false

 

# Path to the peer server TLS trusted CA cert file.

trusted-ca-file:

 

# Peer TLS using generated certificates.

auto-tls: false

 

# Enable debug-level logging for etcd.

debug: false

 

logger: zap

 

# Specify 'stdout' or 'stderr' to skip journald logging even when running under systemd.

log-outputs: [stderr]

 

# Force to create a new one member cluster.

force-new-cluster: false

 

auto-compaction-mode: periodic

auto-compaction-retention: "1"

回到顶部

二 配置项解析

2.1 成员相关标识

--name

含义:此成员的名称。

默认值:default

环境变量:ETCD_NAME

作用:此配置值作为此节点在--initial-cluster标志中列出的条目(例如,default=http://localhost:2380)引用。若使用静态引导,则需要匹配标志中使用的密钥。使用发现时,每个成员必须具有唯一的名称。建议使用Hostname或者machine-id。

注意:使用发现时,每个成员必须具有唯一的名称。

--data-dir

含义:服务运行数据保存的路径。

默认值:${name}.etcd

环境变量:ETCD_DATA_DIR

作用:设置数据保存的目录。

--wal-dir

含义:专用wal目录的路径。

默认值:--data-dir的路径下

环境变量:ETCD_WAL_DIR

作用:独立设置wal目录,etcd会将WAL文件写入--wal-dir而不是--data-dir。独立的wal路径,有助于避免日志记录和其他IO操作之间的竞争。

--snapshot-count

含义:触发快照到磁盘的已提交事务数。

默认值:100000

环境变量:ETCD_SNAPSHOT_COUNT

作用:指定有多少事务(transaction)被提交时,触发截取快照保存到磁盘。

--heartbeat-interval

含义:心跳间隔的时间(以毫秒为单位)

默认值:100

环境变量:ETCD_HEARTBEAT_INTERVAL

作用:leader 多久发送一次心跳到 followers。

--election-timeout

含义:选举超时的时间(以毫秒为单位)

默认值:1000

环境变量:ETCD_ELECTION_TIMEOUT

作用:重新投票的超时时间,如果 follow 在该时间间隔没有收到心跳包,会触发重新投票,默认为 1000 ms。

--listen-peer-urls

含义:和成员之间通信的地址。

默认值:http://localhost:2380

环境变量:ETCD_LISTEN_PEER_URLS

作用:用于监听其他etcd member的url

提示:域名为无效值,如http://example.com:2380为错误配置。

--listen-client-urls

含义:对外提供服务的地址

默认值:http://localhost:2379

环境变量:ETCD_LISTEN_CLIENT_URLS

作用:对外提供服务的地址。

提示:域名为无效值,如http://example.com:2379为错误配置。

--max-snapshots

含义:要保留的最大快照文件数(0表示不受限制)。

默认值:5

环境变量:ETCD_MAX_SNAPSHOTS

作用:

提示:Windows上的用户默认值不受限制,建议手动清除至5。

--max-wals

含义:要保留的最大wal文件数(0表示不受限制)。

默认值:5

环境变量:ETCD_MAX_WALS

作用:

提示:Windows上的用户默认值不受限制,建议手动清除至5。

--cors

含义:逗号分隔的CORS原始白名单(跨源资源共享)

默认值:

环境变量:ETCD_CORS

--quota-backend-bytes

含义:当后端大小超过给定配额时(0默认为低空间配额),引发警报。

默认值:0

环境变量:ETCD_QUOTA_BACKEND_BYTES

--max-txn-ops

含义:事务中允许的最大操作数。

默认值:128

环境变量:ETCD_MAX_TXN_OPS

--max-request-bytes

含义:服务器将接受的最大客户端请求大小(字节)。

默认值:1572864

环境变量:ETCD_MAX_REQUEST_BYTES

--grpc-keepalive-min-time

含义:客户端在ping服务器之前应等待的最短持续时间间隔。

默认值:5s

环境变量:ETCD_GRPC_KEEPALIVE_MIN_TIME

--grpc-keepalive-interval

含义:服务器到客户端ping的频率持续时间,以检查连接是否处于活动状态(0表示禁用)。

默认值:2h

环境变量:ETCD_GRPC_KEEPALIVE_INTERVAL

--grpc-keepalive-timeout

含义:关闭非响应连接之前的额外持续等待时间(0表示禁用)。

默认值:20s

环境变量:ETCD_GRPC_KEEPALIVE_TIMEOUT

2.2 集群相关标识

提示:--initial-advertise-peer-urls, --initial-cluster, --initial-cluster-state, and --initial-cluster-token标识用于引导一个新成员,当重启一个已经存在的成员时将忽略。

--initial-advertise-peer-urls

含义:该节点成员对等URL地址,且会通告群集的其余成员节点。

默认值:http://localhost:2380

环境变量:ETCD_INITIAL_ADVERTISE_PEER_URLS

作用:

--initial-cluster

含义:集群中所有节点的信息。

默认值:default=http://localhost:2380

环境变量:ETCD_INITIAL_CLUSTER

作用:

注意:此处default为节点的--name指定的名字;localhost:2380为--initial-advertise-peer-urls指定的值。

--initial-cluster-state

含义:初始集群状态

默认值:new

环境变量:ETCD_INITIAL_CLUSTER_STATE

作用:设置new为初始静态或DNS引导期间出现的所有成员。如果将此选项设置为existing,则etcd将尝试加入现有群集。

--initial-cluster-token

含义:创建集群的 token,这个值每个集群保持唯一。

默认值:etcd-cluster

环境变量:ETCD_INITIAL_CLUSTER_TOKEN

作用:此配置可使重新创建集群,即使配置和之前一样,也会再次生成新的集群和节点 uuid;否则会导致多个集群之间的冲突,造成未知的错误。

--advertise-client-urls

含义:此成员的客户端URL列表,用于通告群集的其余部分。这些URL可以包含域名。

默认值:http://localhost:2379

环境变量:ETCD_ADVERTISE_CLIENT_URLS

作用:对外公告的该节点客户端监听地址。

--discovery

含义:用于引导群集的发现URL。

默认值:

环境变量:ETCD_DISCOVERY

作用:

--discovery-srv

含义:DNS srv域用于引导群集。

默认值:

环境变量:ETCD_DISCOVERY_SRV

作用:

--discovery-srv-name

含义:使用DNS引导时查询的DNS srv名称的后缀。

默认值:

环境变量:ETCD_DISCOVERY_SRV_NAME

作用:

--discovery-fallback

含义:发现服务失败时的预期行为(“退出”或“代理”)。“proxy”仅支持v2 API。

默认值:proxy

环境变量:ETCD_DISCOVERY_FALLBACK

作用:

--discovery-proxy

含义:用于流量到发现服务的HTTP代理。

默认值:

环境变量:ETCD_DISCOVERY_PROXY

作用:

--strict-reconfig-check

含义:拒绝可能导致仲裁丢失的重新配置请求。

默认值:false

环境变量:ETCD_STRICT_RECONFIG_CHECK

作用:

--auto-compaction-retention

含义:在一个小时内为mvcc键值存储的自动压实保留。0表示禁用自动压缩。

默认值:0

环境变量:ETCD_AUTO_COMPACTION_RETENTION

作用:

--auto-compaction-mode

含义:说明--auto-compaction-retention配置的基于时间保留的三种模式:periodic, revision. periodic

默认值:periodic

环境变量:ETCD_AUTO_COMPACTION_MODE

作用:

--enable-v2

含义:接受etcd V2客户端请求

默认值:true

环境变量:ETCD_ENABLE_V2

作用:

2.3 代理相关标识

提示:--proxy配置etcd以在代理模式下运行,“proxy”仅支持v2 API。

--proxy

含义:代理模式设置,("off", "readonly" or "on")

默认值:off

环境变量:ETCD_PROXY

作用:

--proxy-failure-wait

含义:在重新考虑代理请求之前,endpoints 将处于失败状态的时间(以毫秒为单位)。

默认值:5000

环境变量:ETCD_PROXY_FAILURE_WAIT

作用:

--proxy-refresh-interval

含义:endpoints 刷新间隔的时间(以毫秒为单位)。

默认值:30000

环境变量:ETCD_PROXY_REFRESH_INTERVAL

作用:

--proxy-dial-timeout

含义:拨号超时的时间(以毫秒为单位)或0表示禁用超时

默认值:1000

环境变量:ETCD_PROXY_DIAL_TIMEOUT

作用:

--proxy-write-timeout

含义:写入超时的时间(以毫秒为单位)或0以禁用超时。

默认值:5000

环境变量:ETCD_PROXY_WRITE_TIMEOUT

作用:

--proxy-read-timeout

含义:读取超时的时间(以毫秒为单位)或0以禁用超时。

默认值:0

环境变量:ETCD_PROXY_READ_TIMEOUT

作用:

2.4 安全相关标识

--ca-file

提示:已弃用,可以替换为--trusted-ca-file ca.crt、--client-cert-auth,etcd将执行相同的操作。

--cert-file

含义:客户端服务器TLS证书文件的路径。

默认值:

环境变量:ETCD_CERT_FILE

作用:

--key-file

含义:客户端服务器TLS密钥文件的路径。

默认值:

环境变量:ETCD_KEY_FILE

作用:

--client-cert-auth

含义:启用客户端证书验证。

默认值:false

环境变量:ETCD_CLIENT_CERT_AUTH

作用:

--client-crl-file

含义:客户端证书吊销列表文件的路径。

默认值:

环境变量:ETCD_CLIENT_CRL_FILE

作用:

--trusted-ca-file

含义:客户端服务器的路径TLS可信CA证书文件。

默认值:

环境变量:ETCD_TRUSTED_CA_FILE

作用:

--auto-tls

含义:客户端TLS使用生成的证书

默认值:false

环境变量:ETCD_AUTO_TLS

作用:

--peer-ca-file

提示:已弃用,可以替换为--peer-trusted-ca-file ca.crt --peer-client-cert-auth,etcd将执行相同的操作。

--peer-cert-file

含义:对等服务器TLS证书文件的路径。这是对等流量的证书,用于服务器和客户端。

默认值:

环境变量:ETCD_PEER_CERT_FILE

作用:

--peer-key-file

含义:对等服务器TLS密钥文件的路径。这是对等流量的关键,用于服务器和客户端。

默认值:

环境变量:ETCD_PEER_KEY_FILE

作用:

--peer-client-cert-auth

含义:启用对等客户端证书验证。

默认值:false

环境变量:ETCD_PEER_CLIENT_CERT_AUTH

作用:

--peer-crl-file

含义:对等证书吊销列表文件的路径。

默认值:

环境变量:ETCD_PEER_CRL_FILE

作用:

--peer-trusted-ca-file

含义:对等服务器TLS可信CA文件的路径。

默认值:

环境变量:ETCD_PEER_TRUSTED_CA_FILE

作用:

--peer-auto-tls

含义:Peer TLS使用自动生成的证书

默认值:false

环境变量:ETCD_PEER_AUTO_TLS

作用:

--peer-cert-allowed-cn

含义:允许CommonName进行对等体认证。

默认值:none

环境变量:ETCD_PEER_CERT_ALLOWED_CN

作用:

2.5 日志相关标识

--logger

含义:为结构化日志记录指定'zap'或'capnslog'。

默认值:capnslog

环境变量:ETCD_LOGGER

作用:

--log-outputs

含义:指定'stdout'或'stderr'以跳过日志记录,即使在systemd或逗号分隔的输出目标列表下运行也是如此。

默认值:default

环境变量:ETCD_LOG_OUTPUT

作用:

--debug

含义:将所有子包的默认日志级别设置为DEBUG。

默认值:false(所有包的INFO)

环境变量:ETCD_DEBUG

作用:

--log-package-levels

含义:将单个etcd子包设置为特定的日志级别。一个例子是etcdserver=WARNING,security=DEBUG

默认值:(所有包的INFO)

环境变量:ETCD_LOG_PACKAGE_LEVELS

作用:

2.6 非安全相关标识

--force-new-cluster

含义:强制创建新的单成员群集。它提交配置更改,强制删除集群中的所有现有成员并添加自身。需要将其设置为还原备份。

默认值:false

环境变量:ETCD_FORCE_NEW_CLUSTER

作用:

2.7 配置文件相关标识

--enable-pprof

含义:通过HTTP服务器启用运行时分析数据。地址位于客户端URL +“/ debug / pprof /”

默认值:false

环境变量:

作用:

--metrics

含义:设置导出的指标的详细程度,指定“扩展”以包括直方图指标。

默认值:basic

环境变量:

作用:

--listen-metrics-urls

含义:要监听的其他URL列表将响应端点/metrics和/health端点

默认值:

环境变量:

作用:

2.8 其他相关标识

--version

含义:打印版本并退出。

默认值:false

环境变量:

作用:

--config-file

含义:从文件加载服务器配置。

默认值:

环境变量:

作用:从配置文件加载相关配置。

2.9 认证相关标识

--auth-token

--bcrypt-cost

含义:为散列身份验证密码指定bcrypt算法的成本/强度。有效值介于4和31之间。

默认值:10

环境变量:

作用:

 

更多参考:https://github.com/etcd-io/etcd/blob/master/Documentation/op-guide/configuration.md

你可能感兴趣的:(etcd配置介绍)