etcd配置文件详解
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
|
一 示例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" |
ETCD的名称
1
2
3
4
5
6
7
8
9
10
11
|
ETCD_NAME=ops-cuidehua001 #ETCD存储目录 ETCD_DATA_DIR= /usr/local/etcd/data #本机IP地址 LOCAL_IP=10.59.87.121 #初始化名称 INITIAL_CLUSTER_TOKEN=etcd_cluster_cuidehua #初始化群集列表 INITIAL_CLUSTER= "ops-cuizhiliang001=http://10.59.87.121:2380,etcd-node-002=http://10.59.87.11:2380" #初始化状态 INITIAL_CLUSTER_STATE=new |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
|
二 配置项解析 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 环境变量: 作用: |