etcd配置參數


etcd可以通過配置文件、命令行參數和環境變量進行配置

配置文件使用YAML語法編寫。使用配置文件可以通過 --config-file或者ETCD_CONFIG_FILE環境變量指定

配置優先級
命令行參數優先級高於環境變量中的選項。如果提供了配置文件,命令行參數和環境變量將被忽略

成員相關配置項

--name

  • 節點名稱
  • default: "default"
  • env variable: ETCD_NAME
  • 這個值和--initial-cluster flag (e.g., default=http://localhost:2380)中的key值一一對應,如果在集群環境中,name必須是唯一的,建議用主機名稱或者機器ID。

--data-dir

  • 數據存儲目錄
  • default: "${name}.etcd"
  • env variable: ETCD_DATA_DIR

--wal-dir

  • default: ""
  • env variable: ETCD_WAL_DIR
  • 存放預寫式日志,最大的作用是記錄了整個數據變化的全部歷程。未設置,共用--data-dir文件所在目錄。可以配置路徑為專用磁盤,有助於避免日志記錄和其他io操作之間的io競爭

--snapshot-count

  • default: "100000"
  • env variable: ETCD_SNAPSHOT_COUNT
  • 數據快照觸發數量,etcd處理指定的次數的事務提交后,生成數據快照

--heartbeat-interval

  • default: "100"
  • env variable: ETCD_HEARTBEAT_INTERVAL
  • 客戶端連接后的心跳間隔(毫秒)

--election-timeout

  • default: "1000"
  • env variable: ETCD_ELECTION_TIMEOUT
  • 集群選舉的超時時間

--listen-peer-urls

  • default: "http://localhost:2380"
  • env variable: ETCD_LISTEN_PEER_URLS
  • example: "http://10.0.0.1:2380"
  • invalid example: "http://example.com:2380" (domain name is invalid for binding)
  • 本節點與其他節點進行數據交換(選舉,數據同步)的監聽地址,地址寫法是 scheme://IP:port,可以多個並用逗號隔開,如果配置是http://0.0.0.0:2380,將不限制node訪問地址

--listen-client-urls

  • default: "http://localhost:2379"
  • env variable: ETCD_LISTEN_CLIENT_URLS
  • example: "http://10.0.0.1:2379"
  • invalid example: "http://example.com:2379" (domain name is invalid for binding)
  • 監聽地址,地址寫法是 scheme://IP:port,可以多個並用逗號隔開,如果配置是http://0.0.0.0:2379,將不限制node訪問地址

--max-snapshots

  • default: 5
  • env variable: ETCD_MAX_SNAPSHOTS
  • 要保留的快照文件的最大數量,0是無限制。Windows用戶的默認值是無限制的,建議設置5以下的值。

--max-wals

  • default: 5
  • env variable: ETCD_MAX_WALS
  • 要保留的wal文件的最大數量,0是無限制。Windows用戶的默認值是無限制的,建議設置5以下的值。

--cors

  • default: ""
  • env variable: ETCD_CORS
  • Comma-separated white list of origins for CORS (cross-origin resource sharing).

--quota-backend-bytes

--backend-batch-limit

  • default: 0
  • env variable: ETCD_BACKEND_BATCH_LIMIT
  • 提交后端實物之前的最大操作

--backend-batch-interval

  • default: 0
  • env variable: ETCD_BACKEND_BATCH_INTERVAL
  • 提交后端事物之前的最長時間

--max-txn-ops

  • default: 128
  • env variable: ETCD_MAX_TXN_OPS
  • 事物中允許的最大操作數

--max-request-bytes

  • default: 1572864
  • env variable: ETCD_MAX_REQUEST_BYTES
  • 服務器可以接受的客戶端請求大小

--grpc-keepalive-min-time

  • default: 5s
  • env variable: ETCD_GRPC_KEEPALIVE_MIN_TIME
  • 客戶端在ping服務器之前最少要等待多久

--grpc-keepalive-interval

  • default: 2h
  • env variable: ETCD_GRPC_KEEPALIVE_INTERVAL
  • 服務器ping客戶端的頻率,檢查連接是否處於活動狀態(0表示禁用)

--grpc-keepalive-timeout

  • default: 20s
  • env variable: ETCD_GRPC_KEEPALIVE_TIMEOUT
  • 關閉非響應連接之前額外等待時間(0表示禁用)

集群配置

--initial-advertise-peer-urls

  • default: "http://localhost:2380"
  • env variable: ETCD_INITIAL_ADVERTISE_PEER_URLS
  • example: "http://example.com:2380, http://10.0.0.1:2380"
  • 通知其他節點與本節點進行數據交換(選舉,同步)的地址,URL可以使用domain地址。
  • 與--listener-peer-urls不同在於listener-peer-urls用於請求客戶端的接入控制,initial-advertise-peer-urls是告知其他集群節點訪問哪個URL,一般來說,initial-advertise-peer-urlsl將是istener-peer-urls的子集

--initial-cluster

  • 用於引導初始集群配置,集群中所有節點的信息。
  • default: "default=http://localhost:2380"
  • env variable: ETCD_INITIAL_CLUSTER
  • 此處default為節點的--name指定的名字;localhost:2380為--initial-advertise-peer-urls指定的值。

--initial-cluster-state

  • 初始集群狀態,設置new為初始靜態或DNS引導期間出現的所有成員。如果將此選項設置為existing,則etcd將嘗試加入現有群集。
  • default: "new"
  • env variable: ETCD_INITIAL_CLUSTER_STATE

--initial-cluster-token

  • 集群唯一標識,相同標識的節點將視為在一個集群內
  • default: "etcd-cluster"
  • env variable: ETCD_INITIAL_CLUSTER_TOKEN

--advertise-client-urls

  • 用於通知其他ETCD節點,客戶端接入本節點的監聽地址,一般來說advertise-client-urls是listen-client-urls子集,這些URL可以包含域名。
  • default: "http://localhost:2379"
  • env variable: ETCD_ADVERTISE_CLIENT_URLS
  • example: "http://example.com:2379, http://10.0.0.1:2379"
  • 注意,不能寫http://localhost:237,這樣就是通知其他節點,可以用localhost訪問,將導致ectd的客戶端用localhost訪問本地,導致訪問不通。還有一個更可怕情況,ectd布置了代理層,代理層將一直通過locahost訪問自己的代理接口,導致無限循環。

--discovery

  • 集群發現服務地址
  • default: none
  • env variable: ETCD_DISCOVERY_SRV

--discovery-srv

  • 用於引導集群的DNS sry域
  • default: ""
  • env variable: ETCD_DISCOVERY_SRV

--discovery-srv-name

  • 使用DNS引導時查詢的DNS srv名稱的后綴
  • default: ""
  • env variable: ETCD_DISCOVERY_SRV_NAME

--discovery-fallback

  • 發現服務失敗時的預期行為(“退出”或“代理”)。“proxy”僅支持v2 API
  • default: "proxy"
  • env variable: ETCD_DISCOVERY_FALLBACK

--discovery-proxy

  • 用於流量到發現服務的HTTP代理
  • default: ""
  • env variable: ETCD_DISCOVERY_PROXY

--strict-reconfig-check

  • 拒絕可能導致仲裁丟失的重新配置請求。
  • default: true
  • env variable: ETCD_STRICT_RECONFIG_CHECK

--auto-compaction-retention

  • 在一個小時內為mvcc鍵值存儲的自動壓實保留。0表示禁用自動壓縮
  • default: 0
  • env variable: ETCD_AUTO_COMPACTION_RETENTION

--auto-compaction-mode

  • 說明--auto-compaction-retention配置的基於時間保留的三種模式:periodic, revision. periodic
  • default: periodic
  • env variable: ETCD_AUTO_COMPACTION_MODE

--enable-v2

  • 接受etcd V2客戶端請求
  • default: true
  • env variable: ETCD_ENABLE_V2

代理

--proxy配置etcd以在代理模式下運行,“proxy”僅支持v2 API。

--proxy

  • 代理模式設置,("off", "readonly" or "on")
  • default: "off"
  • env variable: ETCD_PROXY

--proxy-failure-wait

  • 在重新考慮代理請求之前,endpoints 將處於失敗狀態的時間(以毫秒為單位)
  • default: 5000
  • env variable: ETCD_PROXY_FAILURE_WAIT

--proxy-refresh-interval

  • endpoints 刷新間隔的時間(以毫秒為單位)
  • default: 30000
  • env variable: ETCD_PROXY_REFRESH_INTERVAL

--proxy-dial-timeout

  • 撥號超時的時間(以毫秒為單位)或0表示禁用超時
  • default: 1000
  • env variable: ETCD_PROXY_DIAL_TIMEOUT

--proxy-write-timeout

  • 寫入超時的時間(以毫秒為單位)或0以禁用超時
  • default: 5000
  • env variable: ETCD_PROXY_WRITE_TIMEOUT

--proxy-read-timeout

  • 讀取超時的時間(以毫秒為單位)或0以禁用超時。
  • 如果使用watch,不要改變這個值,因為使用長輪詢請求
  • default: 0
  • env variable: ETCD_PROXY_READ_TIMEOUT

安全

--ca-file

  • 已棄用,可以替換為--trusted-ca-file ca.crt、--client-cert-auth,etcd將執行相同的操作
  • default: ""
  • env variable: ETCD_CA_FILE

--cert-file

  • 客戶端服務器TLS證書文件的路徑。
  • default: ""
  • env variable: ETCD_CERT_FILE

--key-file

  • 客戶端服務器TLS密鑰文件的路徑
  • default: ""
  • env variable: ETCD_KEY_FILE

--client-cert-auth

  • 啟用客戶端證書驗證。
  • default: false
  • env variable: ETCD_CLIENT_CERT_AUTH
  • grpc-gateway不支持CN身份驗證

--client-crl-file

  • 客戶端證書吊銷列表文件的路徑
  • default: ""
  • env variable: ETCD_CLIENT_CRL_FILE

--trusted-ca-file

  • 客戶端服務器的路徑TLS可信CA證書文件
  • default: ""
  • env variable: ETCD_TRUSTED_CA_FILE

--auto-tls

  • 客戶端TLS使用生成的證書
  • default: false
  • env variable: ETCD_AUTO_TLS

--peer-ca-file

  • 已棄用,可以替換為--peer-trusted-ca-file ca.crt --peer-client-cert-auth,etcd將執行相同的操作。
  • default: ""
  • env variable: ETCD_PEER_CA_FILE

--peer-cert-file

  • 對等服務器TLS證書文件的路徑。這是對等流量的證書,用於服務器和客戶端。
  • default: ""
  • env variable: ETCD_PEER_CERT_FILE

--peer-key-file

  • 對等服務器TLS密鑰文件的路徑。這是對等流量的關鍵,用於服務器和客戶端。
  • default: ""
  • env variable: ETCD_PEER_KEY_FILE

--peer-client-cert-auth

  • 啟用對等客戶端證書驗證
  • default: false
  • env variable: ETCD_PEER_CLIENT_CERT_AUTH

--peer-crl-file

  • 對等證書吊銷列表文件的路徑。
  • default: ""
  • env variable: ETCD_PEER_CRL_FILE

--peer-trusted-ca-file

  • 對等服務器TLS可信CA文件的路徑
  • default: ""
  • env variable: ETCD_PEER_TRUSTED_CA_FILE

--peer-auto-tls

  • Peer TLS使用自動生成的證書
  • default: false
  • env variable: ETCD_PEER_AUTO_TLS

--peer-cert-allowed-cn

  • 允許CommonName進行對等體認證
  • default: none
  • env variable: ETCD_PEER_CERT_ALLOWED_CN

--cipher-suites

  • Comma-separated list of supported TLS cipher suites between server/client and peers.
  • default: ""
  • env variable: ETCD_CIPHER_SUITES

日志配置

--logger

  • 為結構化日志記錄指定'zap'或'capnslog'。
  • default: capnslog
  • env variable: ETCD_LOGGER

--log-outputs

  • 指定'stdout'或'stderr'以跳過日志記錄,即使在systemd或逗號分隔的輸出目標列表下運行也是如此。
  • default: default
  • env variable: ETCD_LOG_OUTPUTS
  • 在zap日志程序遷移期間,默認使用v3.4的“stderr”配置

--debug

  • 將所有子包的默認日志級別設置為DEBUG。
  • default: false (INFO for all packages)
  • env variable: ETCD_DEBUG

--log-package-levels

  • 將單個etcd子包設置為特定的日志級別。一個例子是etcdserver=WARNING,security=DEBUG
  • default: "" (INFO for all packages)
  • env variable: ETCD_LOG_PACKAGE_LEVELS

非安全配置

--force-new-cluster

  • 強制創建新的單成員群集。它提交配置更改,強制刪除集群中的所有現有成員並添加自身。需要將其設置為還原備份。
  • default: false
  • env variable: ETCD_FORCE_NEW_CLUSTER

其他配置

--version

  • Print the version and exit.
  • default: false

--config-file

  • 從文件中加載服務器配置。注意如果提供了配置文件,其他命令行參數和環境變量將被忽略
  • default: ""
  • example: sample configuration file
  • env variable: ETCD_CONFIG_FILE

性能配置

--enable-pprof

  • 通過HTTP服務器啟用運行時分析數據。地址位於客戶端URL +“/ debug / pprof /”
  • default: false
  • env variable: ETCD_ENABLE_PPROF

--metrics

  • 設置導出的指標的詳細程度,指定“擴展”以包括直方圖指標。
  • default: basic
  • env variable: ETCD_METRICS

--listen-metrics-urls

  • 要監聽的其他URL列表將響應端點/metrics和/health端點
  • default: ""
  • env variable: ETCD_LISTEN_METRICS_URLS

認證配置

--auth-token

  • default: "simple"
  • env variable: ETCD_AUTH_TOKEN

--bcrypt-cost

  • 為散列身份驗證密碼指定bcrypt算法的成本/強度。有效值介於4和31之間。
  • default: 10
  • env variable: (not supported)

參考
https://www.cnblogs.com/lowezheng/p/10307592.html
https://github.com/etcd-io/etcd/blob/master/Documentation/op-guide/configuration.md
https://www.cnblogs.com/itzgr/p/9920910.html#_label1_1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM