附001.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
相關文章
相關標籤/搜索