- 配置標(biāo)記
配置標(biāo)記
etcd 可以通過(guò)命令行標(biāo)記和環(huán)境變量來(lái)配置。命令行上設(shè)置的選項(xiàng)優(yōu)先于環(huán)境變量。
對(duì)于標(biāo)記 --my-flag 環(huán)境變量的格式是 ETCD_MY_FLAG。 適用于所有標(biāo)記。
正式的ectd端口 是 2379 用于客戶(hù)端連接,而 2380 用于伙伴通訊。etcd 端口可以設(shè)置為接受 TLS 通訊,non-TLS 通訊,或者同時(shí)有 TLS 和 non-TLS 通訊。
為了在 linux 啟動(dòng)試使用自定義設(shè)置自動(dòng)啟動(dòng) etcd ,強(qiáng)烈推薦使用 systemd單元。
成員標(biāo)記
—name
- 成員的可讀性的名字.
- 默認(rèn): “default”
- 環(huán)境變量: ETCD_NAME
- 這個(gè)值被作為這個(gè)節(jié)點(diǎn)自己的入口中被引用, 在
--initial-cluster標(biāo)記(例如,default=http://localhost:2380)中列出。如果使用 static bootstrapping,這需要匹配在標(biāo)記中使用的key。當(dāng)使用發(fā)現(xiàn)時(shí),每個(gè)成員必須有唯一名字。Hostname或machine-id可以是一個(gè)好選擇。
—data-dir
- 到數(shù)據(jù)目錄的路徑.
- 默認(rèn): “${name}.etcd”
- 環(huán)境變量: ETCD_DATA_DIR
—wal-dir
- 到專(zhuān)用的 wal 目錄的路徑。如果這個(gè)標(biāo)記被設(shè)置,etcd將寫(xiě) WAL 文件到 walDIR 而不是 dataDIR。這容許使用專(zhuān)門(mén)的硬盤(pán),并幫助避免日志和其他IO操作之間的IO競(jìng)爭(zhēng)。
- 默認(rèn): “”
- 環(huán)境變量: ETCD_WAL_DIR
—snapshot-count
- 觸發(fā)快照到硬盤(pán)的已提交事務(wù)的數(shù)量.
- 默認(rèn): “10000”
- 環(huán)境變量: ETCD_SNAPSHOT_COUNT
—heartbeat-interval
- 心跳間隔時(shí)間 (單位 毫秒).
- 默認(rèn): “100”
- 環(huán)境變量: ETCD_HEARTBEAT_INTERVAL
—election-timeout
- 選舉的超時(shí)時(shí)間(單位 毫秒). 閱讀 Documentation/tuning.md 得到更多詳情.
- 默認(rèn): “1000”
- 環(huán)境變量: ETCD_ELECTION_TIMEOUT
—listen-peer-urls
用于監(jiān)聽(tīng)伙伴通訊的URL列表。這個(gè)標(biāo)記告訴 etcd 在特定的 scheme://IP:port 組合上從它的伙伴接收進(jìn)來(lái)的請(qǐng)求。scheme 可是 http 或者 https。如果IP被指定為0.0.0.0,etcd 在所有接口上監(jiān)聽(tīng)給定端口。如果給定IP地址和端口,etcd 將監(jiān)聽(tīng)在給定端口和接口上。多個(gè)URL可以用來(lái)指定多個(gè)地址和端口來(lái)監(jiān)聽(tīng)。etcd將從任何列出來(lái)的地址和端口上應(yīng)答請(qǐng)求。
- 默認(rèn): “http://localhost:2380“
- 環(huán)境變量: ETCD_LISTEN_PEER_URLS
- 例子: “http://10.0.0.1:2380“
- 無(wú)效例子: “http://example.com:2380“ (對(duì)于綁定域名無(wú)效)
—listen-client-urls
用于監(jiān)聽(tīng)客戶(hù)端通訊的URL列表。這個(gè)標(biāo)記告訴 etcd 在特定的 scheme://IP:port 組合上從客戶(hù)端接收進(jìn)來(lái)的請(qǐng)求。scheme 可是 http 或者 https。如果IP被指定為 0.0.0.0,etcd 在所有接口上監(jiān)聽(tīng)給定端口。如果給定IP地址和端口,etcd 將監(jiān)聽(tīng)在給定端口和接口上。多個(gè) URL 可以用來(lái)指定多個(gè)地址和端口來(lái)監(jiān)聽(tīng)。etcd 將從任何列出來(lái)的地址和端口上應(yīng)答請(qǐng)求。
- 默認(rèn): “http://localhost:2379“
- 環(huán)境變量: ETCD_LISTEN_CLIENT_URLS
- 例子: “http://10.0.0.1:2379“
- 無(wú)效例子: “http://example.com:2379“ (對(duì)于綁定域名無(wú)效)
—max-snapshots
- 保持的快照文件的最大數(shù)量 (0 表示不限制)
- 默認(rèn): 5
- 環(huán)境變量: ETCD_MAX_SNAPSHOTS
- 對(duì)于 windows 用戶(hù)默認(rèn)不限制,而且推薦手工降低到5(或者某些安全偏好)。
—max-wals
- 保持的 wal 文件的最大數(shù)量 (0 表示不限制)
- 默認(rèn): 5
- 環(huán)境變量: ETCD_MAX_WALS
- 對(duì)于windows用戶(hù)默認(rèn)不限制,而且推薦手工降低到5(或者某些安全偏好)。
—cors
- 逗號(hào)分割的 origin 白名單,用于 CORS (cross-origin resource sharing/跨 origin 資源共享).
- 默認(rèn): none
- 環(huán)境變量: ETCD_CORS
集群標(biāo)記
--initial 前綴標(biāo)記用于啟動(dòng)(static bootstrap, [discovery-service bootstrap])(clustering.md#discovery) 或 runtime reconfiguration) 新成員, 然后當(dāng)重新啟動(dòng)一個(gè)已有的成員時(shí)被忽略。
--discovery 前綴標(biāo)記在使用發(fā)現(xiàn)服務(wù)需要設(shè)置.
—initial-advertise-peer-urls
列出這個(gè)成員的伙伴 URL 以便通告給集群的其他成員。這些地方用于在集群中通訊 etcd 數(shù)據(jù)。至少有一個(gè)必須對(duì)所有集群成員可以路由的。這些 URL 可以包含域名。
- 默認(rèn): “http://localhost:2380“
- 環(huán)境變量: ETCD_INITIAL_ADVERTISE_PEER_URLS
- 例子: “http://example.com:2380, http://10.0.0.1:2380“
—initial-cluster
為啟動(dòng)初始化集群配置。
- 默認(rèn): “default=http://localhost:2380“
- 環(huán)境變量: ETCD_INITIAL_CLUSTER
- key是每個(gè)提供的節(jié)點(diǎn)的
--name標(biāo)記的值. 默認(rèn)為這個(gè) key 使用default因?yàn)檫@是--name標(biāo)記的默認(rèn)值.
—initial-cluster-state
初始化集群狀態(tài)(“new” or “existing”)。在初始化靜態(tài)(initial static)或者 DNS 啟動(dòng) (DNS bootstrapping) 期間為所有成員設(shè)置為 new 。如果這個(gè)選項(xiàng)被設(shè)置為 existing , etcd 將試圖加入已有的集群。如果設(shè)置為錯(cuò)誤的值,etcd 將嘗試啟動(dòng)但安全失敗。
- 默認(rèn): “new”
- 環(huán)境變量: ETCD_INITIAL_CLUSTER_STATE
—initial-cluster-token
在啟動(dòng)期間用于 etcd 集群的初始化集群記號(hào)(cluster token)。
- 默認(rèn): “etcd-cluster”
- 環(huán)境變量: ETCD_INITIAL_CLUSTER_TOKEN
—advertise-client-urls
列出這個(gè)成員的客戶(hù)端URL,通告給集群中的其他成員。這些 URL 可以包含域名。
- 默認(rèn): “http://localhost:2379“
- 環(huán)境變量: ETCD_ADVERTISE_CLIENT_URLS
- 例子: “http://example.com:2379, http://10.0.0.1:2379“
小心,如果來(lái)自集群成員的通告 URL 比如 http://localhost:2379 正在使用 etcd 的 proxy 特性。這將導(dǎo)致循環(huán),因?yàn)榇韺⑥D(zhuǎn)發(fā)請(qǐng)求給它自己直到它的資源(內(nèi)存,文件描述符)最終耗盡。
—discovery
用于啟動(dòng)集群的發(fā)現(xiàn)URL。
- 默認(rèn): none
- 環(huán)境變量: ETCD_DISCOVERY
—discovery-srv
用于啟動(dòng)集群的 DNS srv 域名。
- 默認(rèn): none
- 環(huán)境變量: ETCD_DISCOVERY_SRV
—discovery-fallback
當(dāng)發(fā)現(xiàn)服務(wù)失敗時(shí)的期待行為(“exit” 或 “proxy”). “proxy” 僅支持 v2 API.
- 默認(rèn): “proxy”
- 環(huán)境變量: ETCD_DISCOVERY_FALLBACK
—discovery-proxy
用于請(qǐng)求到發(fā)現(xiàn)服務(wù)的 HTTP 代理。
- 默認(rèn): none
- 環(huán)境變量: ETCD_DISCOVERY_PROXY
—strict-reconfig-check
拒絕將導(dǎo)致法定人數(shù)丟失的重配置請(qǐng)求。
- 默認(rèn): false
- 環(huán)境變量: ETCD_STRICT_RECONFIG_CHECK
—auto-compaction-retention
自動(dòng)壓縮用于 mvcc 鍵值存儲(chǔ)的保持力(注:應(yīng)該指多版本保存),單位小時(shí)。 0 表示關(guān)閉自動(dòng)壓縮。
- 默認(rèn): 0
- 環(huán)境變量: ETCD_AUTO_COMPACTION_RETENTION
注: 對(duì)于服務(wù)注冊(cè)等只保存運(yùn)行時(shí)動(dòng)態(tài)信息的場(chǎng)合,建議開(kāi)啟。完全沒(méi)有理由損失存儲(chǔ)空間和效率來(lái)保存之前的版本信息。推薦設(shè)置為1,每小時(shí)壓縮一次。
Proxy flags
--proxy 前綴標(biāo)記配置 etcd 以 代理模式 運(yùn)行. “proxy” 僅支持 v2 API.
—proxy
代理模式設(shè)置(“off”, “readonly” or “on”).
- 默認(rèn): “off”
- 環(huán)境變量: ETCD_PROXY
—proxy-failure-wait
在被重新考慮之前,終端將被視為失敗狀態(tài)的時(shí)間(單位 毫秒),用于被代理的請(qǐng)求。
- 默認(rèn): 5000
- 環(huán)境變量: ETCD_PROXY_FAILURE_WAIT
—proxy-refresh-interval
終端刷新間隔時(shí)間(單位 毫秒)
- 默認(rèn): 30000
- 環(huán)境變量: ETCD_PROXY_REFRESH_INTERVAL
—proxy-dial-timeout
請(qǐng)求的撥號(hào)(dial)超時(shí)時(shí)間(單位 毫秒),或者 0 禁用超時(shí)。
- 默認(rèn): 1000
- 環(huán)境變量 ETCD_PROXY_DIAL_TIMEOUT
—proxy-write-timeout
寫(xiě)操作的超時(shí)時(shí)間(單位 毫秒),或者 0 禁用超時(shí)。
- 默認(rèn): 5000
- 環(huán)境變量: ETCD_PROXY_WRITE_TIMEOUT
—proxy-read-timeout
讀操作的超時(shí)時(shí)間(單位 毫秒),或者 0 禁用超時(shí)。
不要修改這個(gè)值,如果在使用 watch,因?yàn)?watch 將使用 long polling 請(qǐng)求。
- 默認(rèn): 0
- 環(huán)境變量: ETCD_PROXY_READ_TIMEOUT
安全標(biāo)記
安全標(biāo)記用于幫助 搭建安全 etcd 集群.
—ca-file [棄用]
客戶(hù)端服務(wù)器 TLS 證書(shū)文件的路徑。--ca-file ca.crt 可以被 --trusted-ca-file ca.crt --client-cert-auth 替代,而 etcd 同樣工作。
- 默認(rèn): none
- 環(huán)境變量: ETCD_CA_FILE
—cert-file
客戶(hù)端服務(wù)器 TLS 證書(shū)文件的路徑。
- 默認(rèn): none
- 環(huán)境變量: ETCD_CERT_FILE
—key-file
客戶(hù)端服務(wù)器 TLS key 文件的路徑。
- 默認(rèn): none
- 環(huán)境變量: ETCD_KEY_FILE
—client-cert-auth
開(kāi)啟客戶(hù)端證書(shū)認(rèn)證。
- 默認(rèn): false
- 環(huán)境變量: ETCD_CLIENT_CERT_AUTH
—trusted-ca-file
客戶(hù)端服務(wù)器 TLS 信任證書(shū)文件的路徑。
- 默認(rèn): none
- 環(huán)境變量: ETCD_TRUSTED_CA_FILE
—auto-tls
使用生成證書(shū)的客戶(hù)端 TLS。
- 默認(rèn): false
- 環(huán)境變量: ETCD_AUTO_TLS
—peer-ca-file [棄用]
peer server TLS 證書(shū)文件的路徑. --peer-ca-file ca.crt 可以被 --peer-trusted-ca-file ca.crt --peer-client-cert-auth 替代,而 etcd 同樣工作.
- 默認(rèn): none
- 環(huán)境變量: ETCD_PEER_CA_FILE
—peer-cert-file
peer server TLS 證書(shū)文件的路徑.
- 默認(rèn): none
- 環(huán)境變量: ETCD_PEER_CERT_FILE
—peer-key-file
peer server TLS key 文件的路徑.
- 默認(rèn): none
- 環(huán)境變量: ETCD_PEER_KEY_FILE
—peer-client-cert-auth
開(kāi)啟 peer client 證書(shū)驗(yàn)證.
- 默認(rèn): false
- 環(huán)境變量: ETCD_PEER_CLIENT_CERT_AUTH
—peer-trusted-ca-file
peer server TLS 信任證書(shū)文件路徑.
- 默認(rèn): none
- 環(huán)境變量: ETCD_PEER_TRUSTED_CA_FILE
—peer-auto-tls
使用生成證書(shū)的peer TLS。
- 默認(rèn): false
- 環(huán)境變量: ETCD_PEER_AUTO_TLS
日志標(biāo)記
—debug
設(shè)置所有子包的默認(rèn)日志級(jí)別為 DEBUG
- 默認(rèn): false (所有包為 INFO)
- 環(huán)境變量: ETCD_DEBUG
—log-package-levels
設(shè)置個(gè)人 etcd 子包為指定日志級(jí)別。例如 etcdserver=WARNING,security=DEBUG
- 默認(rèn): none (所有包為 INFO)
- 環(huán)境變量: ETCD_LOG_PACKAGE_LEVELS
不安全的標(biāo)記
請(qǐng)謹(jǐn)慎使用不安全標(biāo)記,因?yàn)樗鼘⒋蚱埔恢滦詤f(xié)議提供的保證。
例如,它可能驚慌,如果集群中的其他成員還活著。
當(dāng)使用這些標(biāo)記時(shí),遵循操作指南。
—force-new-cluster
強(qiáng)制創(chuàng)建新的單一成員的集群。它提交配置修改來(lái)強(qiáng)制移除集群中的所有現(xiàn)有成員然后添加自身。當(dāng) restore a backup 時(shí)需要設(shè)置。
- 默認(rèn): false
- 環(huán)境變量: ETCD_FORCE_NEW_CLUSTER
其他標(biāo)記
—version
打印版本并退出.
- 默認(rèn): false
—config-file
從文件中裝載服務(wù)器配置.
- 默認(rèn): none
分析標(biāo)記
—enable-pprof
通過(guò) HTTP 服務(wù)器開(kāi)啟運(yùn)行時(shí)分析數(shù)據(jù)。地址是 client URL + “/debug/pprof/“
- 默認(rèn): false
—metrics
- 為導(dǎo)出的度量,設(shè)置詳情的等級(jí),指定 ‘extensive’ 來(lái)包含柱狀圖
- 默認(rèn): basic