ETCD:配置參數


原文地址:Configuration flags
etcd通過配置文件,多命令行參數和環境變量進行配置,

可重用的配置文件是YAML文件,其名稱和值由一個或多個下面描述的命令行標志組成。為了使用此文件,請將文件路徑指定為--config-file標志或ETCD_CONFIG_FILE環境變量的值。如果需要的話配置文件示例可以作為入口點創建新的配置文件。

在命令行上設置的選項優先於環境中的選項。 如果提供了配置文件,則其他命令行標志和環境變量將被忽略。例如,etcd --config-file etcd.conf.yml.sample --data-dir /tmp將會忽略--data-dir參數。

參數--my-flag的環境變量的格式為ETCD_MY_FLAG.它適用於所有參數。

客戶端請求官方的etcd端口為2379,2380是節點通信端口。可以將etcd端口設置為接受TLS流量,非TLS流量,或同時接受TLS和非TLS流量。

要在Linux啟動時使用自定義設置自動啟動etcd,強烈建議使用systemd單元。

成員標記


--name

  • 人類可讀的該成員的名字
  • 默認值:"default"
  • 環境變量:ETCD_NAME
  • 該值被該節點吃的--initial-cluster參數引用(例如 default=http://localhost:2380).如果使用靜態引導程序,則需要與標志中使用的鍵匹配。當使用發現服務時,每一個成員需要有唯一的名字。Hostname或者machine-id是好的選擇。

--data-dir

  • 數據目錄的路徑
  • 默認值:"${name}.etcd"
  • 環境變量:ETCD_DATA_DIR

--wal-dir

  • 專用的wal目錄的路徑。如果這個參數被設置,etcd將會寫WAL文件到walDir而不是dataDir,允許使用專用磁盤,並有助於避免日志記錄和其他IO操作之間的io競爭。
  • 默認值:""
  • 環境變量:ETCD_WAL_DIR

--snapshot-count

  • 觸發一個快照到磁盤的已提交交易的數量
  • 默認值:"100000"
  • 環境變量:ETCD_SNAPSHOP_COUNT

--heartbeat-interval

  • 心跳間隔(毫秒為單位)
  • 默認值:"100"
  • 環境變量:ETCD_HEARTBEAT_INTERVAL

--election-timeout

  • 選舉超時時間(毫秒為單位),從文檔/tuning.md發現更多細節
  • 默認值:"1000"
  • 環境變量:ETCD_ELECTION_TIMEOUT

--listen-peer-urls

  • 監聽在對等節點流量上的URL列表,該參數告訴etcd在指定的協議://IP:port組合上接受來自其對等方的傳入請求。協議可以是http或者https。或者,使用unix://<file-path>或者unixs://<file-path>到unix sockets。如果將0.0.0.0作為IP,etcd將監聽在所有的接口上的給定端口。如果給定了Ip和端口,etcd將監聽指定的接口和端口。可以使用多個URL指定要監聽的地址和端口的數量。 etcd將響應來自任何列出的地址和端口的請求。
  • 默認值:"http://localhost:2380"
  • 環境變量:ETCD_LISTEN_PEER_URLS
  • 示例:"http://10.0.0.1:2380"
  • 無效的示例:"http://example.com:2380"(綁定的域名是無效的)

--listen-client-urls

  • 監聽在客戶端流量上的URL列表,該參數告訴etcd在指定的協議://IP:port組合上接受來自客戶端的傳入請求。協議可以是http或者https。或者,使用unix://<file-path>或者unixs://<file-path>到unix sockets。如果將0.0.0.0作為IP,etcd將監聽在所有的接口上的給定端口。如果給定了Ip和端口,etcd將監聽指定的接口和端口。可以使用多個URL指定要監聽的地址和端口的數量。 etcd將響應來自任何列出的地址和端口的請求。
  • 默認值:"http://localhost:2379"
  • 環境變量:ETCD_LISTEN_CLIENT_URLS
  • 示例:"http://10.0.0.1:2379"
  • 無效的示例:"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-backent-bytes

  • 后端大小超過給定配額時引發警報(0默認為低空間配額)。
  • 默認值:0
  • 環境變量:ETCD_QUOTA_BACKEND_BYTES

--backend-batch-limit

  • BackendBatchLimit是提交后端事務之前的最大數量的操作。
  • 默認值:0
  • 環境變量:ETCD_BACKEND_BATCH_LIMIT

--backend-bbolt-freelist-type

  • etcd后端(bboltdb)使用的自由列表類型(支持數組和映射的類型)。
  • 默認值:map
  • 環境變量:ETCD_BACKEND_BBOLT_FREELIST_TYPE

--backend-batch-interval

  • BackendBatchInterval是提交后端事務之前的最長時間。
  • 默認值:0
  • 環境變量:ETCD_BACKEND_BATCH_INTERVAL

--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

集群參數


--initial-advertise-peer-urls,--initial-cluster,--initial-cluster-state,和--initial-cluster-token參數用於啟動(靜態啟動,發現服務啟動或者運行時重新配置)一個新成員,當重啟已經存在的成員時將忽略。
前綴為--discovery的參數在使用發現服務時需要被設置。

--initial-advertise-peer-urls

  • 此成員的對等URL的列表,以通告到集群的其余部分。 這些地址用於在集群周圍傳送etcd數據。 所有集群成員必須至少有一個路由。 這些URL可以包含域名。
  • 默認值:"http://localhost:2380"
  • 環境變量:ETCD_INITIAL_ADVERTISE_PEER_URLS
  • 示例:"http://example.com:2380, http://10.0.0.1:2380"

--initial-cluster

  • 啟動集群的初始化配置
  • 默認值:"default=http://localhost:2380"
  • 環境變量:ETCD_INITIAL_CLUSTER
  • 關鍵是所提供的每個節點的--name參數的值。 默認值使用default作為密鑰,因為這是--name參數的默認值。

--initial-cluster-state

  • 初始群集狀態(“新”或“現有”)。 對於在初始靜態或DNS引導過程中存在的所有成員,將其設置為new。 如果此選項設置為existing,則etcd將嘗試加入現存集群。 如果設置了錯誤的值,etcd將嘗試啟動,但會安全地失敗。
  • 默認值:"new:
  • 環境變量:ETCD_INITIAL_CLUSTER_STATE

--initial-cluster-token

  • 引導期間etcd群集的初始集群令牌。
  • 默認值:"etcd-cluster"
  • 環境變量:ETCD_INITIAL_CLUSTER_TOKEN

--advertise-client-urls

  • 此成員的客戶端URL的列表,這些URL廣播給集群的其余部分。 這些URL可以包含域名。
  • 默認值:http://localhost:2379
  • 環境變量:ETCD_ADVERTISE_CLIENT_URLS
  • 示例:"http://example.com:2379, http://10.0.0.1:2379"
  • 如果從集群成員中發布諸如http://localhost:2379之類的URL並使用etcd的代理功能,請小心。這將導致循環,因為代理將向其自身轉發請求,直到其資源(內存,文件描述符)最終耗盡為止。

--discovery

  • 發現URL用於引導啟動集群
  • 默認值:""
  • 環境變量:ETCD_DISCOVERY

--discovery-srv

  • 用於引導集群的DNS srv域。
  • 默認值:""
  • 環境變量:ETCD_DISCOVERY_SRV

--discovery-srv-name

  • 使用DNS引導時查詢的DNS srv名稱的后綴。
  • 默認值:""
  • 環境變量:ETCD_DISCOVERY_SRV_NAME

--discovery-fallback

  • 發現服務失敗時的預期行為(“退出”或“代理”)。“代理”僅支持v2 API。
  • 默認值: "proxy"
  • 環境變量:ETCD_DISCOVERY_FALLBACK

--discovery-proxy

  • HTTP代理,用於發現服務的流量。
  • 默認值:""
  • 環境變量:ETCD_DISCOVERY_PROXY

--strict-reconfig-check

  • 拒絕可能導致quorum丟失的重新配置請求。
  • 默認值:true
  • 環境變量:ETCD_STRICT_RECONFIG_CHECK

--auto-compaction-retention

  • mvcc密鑰值存儲的自動壓縮保留時間(小時)。 0表示禁用自動壓縮。
  • 默認值:0
  • 環境變量:ETCD_AUTO_COMPACTION_RETENTION

--auto-compaction-mode

  • 解釋“自動壓縮保留”之一:“定期”,“修訂”。 基於期限的保留的“定期”,如果未提供時間單位(例如“ 5m”),則默認為小時。 “修訂”用於基於修訂號的保留。
  • 默認值:periodic
  • 環境變量:ETCD_AUTO_COMPACTION_MODE

--enable-v2

  • 接受etcd V2客戶端請求
  • 默認值:false
  • 環境變量:ETCD_ENABLE_V2

代理參數


--proxy前綴標志將etcd配置為以代理模式運行。 “代理”僅支持v2 API。

--proxy

  • 代理模式設置(”off","readonly"或者"on")
  • 默認值:"off"
  • 環境變量:ETCD_PROXY

--proxy-failure-wait

  • 在重新考慮端點請求之前,端點將保持故障狀態的時間(以毫秒為單位)。
  • 默認值:5000
  • 環境變量:ETCD_PROXY_FAILURE_WAIT

--proxy-refresh-interval

  • 節點刷新間隔的時間(以毫秒為單位)。
  • 默認值: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以禁用超時。
  • 如果使用Watch,請勿更改此值,因為會使用較長的輪詢請求。
  • 默認值:0
  • 環境變量:ETCD_PROXY_READ_TIMEOUT

安全參數


安全參數有助於構建一個安全的etcd集群
--ca-file
DEPRECATED

  • 客戶端服務器TLS CA文件的路徑。 --ca-file ca.crt可以替換為--trusted-ca-file ca.crt --client-cert-auth,而etcd將執行相同的操作。
  • 默認值:""
  • 環境變量:ETCD_CA_FILE

--cert-file

  • 客戶端服務器TLS證書文件的路徑
  • 默認值:""
  • 環境變量:ETCD_CERT_FILE

--key-file

  • 客戶端服務器TLS秘鑰文件的路徑
  • 默認值:""
  • 環境變量:ETCD_KEY_FILE

--client-cert-auth

  • 開啟客戶端證書認證
  • 默認值:false
  • 環境變量:ETCD_CLIENT_CERT_AUTH
  • CN 權限認證不支持gRPC-網關

--client-crl-file

  • 客戶端被撤銷的TLS證書文件的路徑
  • 默認值:""
  • 環境變量:ETCD_CLIENT_CERT_ALLOWED_HOSTNAME

--client-cert-allowed-hostname

  • 允許客戶端證書身份驗證的TLS名稱。
  • 默認值:""
  • 環境變量:ETCD_CLIENT_CERT_ALLOWED_HOSTNAME

--trusted-ca-file

  • 客戶端服務器受信任的TLS CA證書文件的路徑
  • 默認值:""
  • 環境變量:ETCD_TRUSTED_CA_FILE

--auto-tls

  • 客戶端TLS使用自動生成的證書
  • 默認值:false
  • 環境變量:ETCD_AUTO_TLS

--peer-ca-file
已淘汰

  • 節點TLS CA文件的路徑.--peer-ca-file可以替換為--peer-trusted-ca-file ca.crt --peer-client-cert-auth,而etcd將執行相同的操作。
  • 默認值:”“
  • 環境變量:ETCD_PEER_CA_FILE

--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

  • 節點被撤銷的TLS證書文件的路徑
  • 默認值:""
  • 環境變量:ETCD_PEER_CRL_FILE

--peer-trusted-ca-file

  • 節點受信任的TLS CA證書文件的路徑
  • 默認值:""
  • 環境變量:ETCD_PEER_TRUSTED_CA_FILE

--peer-auto-tls

  • 節點使用自動生成的證書
  • 默認值:false
  • 環境變量:ETCD_PEER_AUTO_TLS

--peer-cert-allowed-cn

  • 允許使用CommonName進行對等身份驗證。
  • 默認值:""
  • 環境變量:ETCD_PEER_CERT_ALLOWED_CN

--peer-cert-allowed-hostname

  • 允許的TLS證書名稱用於對等身份驗證。
  • 默認值:""
  • 環境變量:ETCD_PEER_CERT_ALLOWED_HOSTNAME

--cipher-suites

  • 以逗號分隔的服務器/客戶端和對等方之間受支持的TLS密碼套件列表。
  • 默認值:""
  • 環境變量:ETCD_CIPHER_SUITES

日志參數


--logger

v3.4可以使用,警告:--logger=capnslog在v3.5被拋棄使用

  • 指定“ zap”用於結構化日志記錄或“ capnslog”。
  • 默認值:capnslog
  • 環境變量:ETCD_LOGGER

--log-outputs

  • 指定“ stdout”或“ stderr”以跳過日志記錄,即使在systemd或逗號分隔的輸出目標列表下運行時也是如此。
  • 默認值:defalut
  • 環境變量:ETCD_LOG_OUTPUTS
  • default在zap logger遷移期間對v3.4使用stderr配置

--log-level
v3.4可以使用

  • 配置日志等級,僅支持debug,info,warn,error,panic,fatal
  • 默認值:info
  • 環境變量:ETCD_LOG_LEVEL
  • default使用info.

--debug
警告:在v3.5被拋棄使用

  • 將所有子程序包的默認日志級別降為DEBUG。
  • 默認值:false(所有的包使用INFO)
  • 環境變量:ETCD_DEBUG

--log-package-levels
警告:在v3.5被拋棄使用

  • 將各個etcd子軟件包設置為特定的日志級別。 一個例子是etcdserver = WARNING,security = DEBUG
  • 默認值:""(所有的包使用INFO)
  • 環境變量:ETCD_LOG_PACKAGE_LEVELS

風險參數


使用不安全標志時請小心,因為它將破壞共識協議提供的保證。 例如,如果群集中的其他成員仍然存在,可能會panic。 使用這些標志時,請遵循說明。
--force-new-cluster

  • 強制創建一個新的單成員群集。 它提交配置更改,以強制刪除群集中的所有現有成員並添加自身,但是強烈建議不要這樣做。 請查看災難恢復文檔以了解首選的v3恢復過程。
  • 默認值:false
  • 環境變量:ETCD_FORCE_NEW_CLUSTER

雜項參數


--version

  • 打印版本並退出
  • 默認值:false

--config-file

  • 從文件加載服務器配置。 請注意,如果提供了配置文件,則其他命令行標志和環境變量將被忽略。
  • 默認值:""
  • 示例:配置文件示例
  • 環境變量:ETCD_CONFIG_FILE

分析參數


--enable-pprof

  • 通過HTTP服務器啟用運行時分析數據。地址位於客戶端URL+“/debug/pprof/”
  • 默認值:false
  • 環境變量:ETCD_ENABLE_PPROF

--metrics

  • 設置導出指標的詳細程度,specify 'extensive' to include server side grpc histogram metrics.
  • 默認值:basic
  • 環境變量:ETCD_METRICS

--listen-metrics-urls

  • 可以響應/metrics/health端點的其他URL列表
  • 默認值:""
  • 環境變量:ETCD_LISTEN_METRICS_URLS

權限參數


--auth-token

  • 指定令牌類型和特定於令牌的選項,特別是對於JWT,格式為type,var1=val1,var2=val2,...,可能的類型是simple或者jwt.對於具體的簽名方法jwt可能的變量為sign-method(可能的值為'ES256', 'ES384', 'ES512', 'HS256', 'HS384', 'HS512', 'RS256', 'RS384', 'RS512', 'PS256', 'PS384','PS512'
  • 對於非對稱算法(“ RS”,“ PS”,“ ES”),公鑰是可選的,因為私鑰包含足夠的信息來簽名和驗證令牌。pub-key用於指定用於驗證jwt的公鑰的路徑,priv-key用於指定用於對jwt進行簽名的私鑰的路徑,ttl用於指定jwt令牌的TTL。
  • JWT的示例選項:-auth-token jwt,pub-key=app.rsa.pub,privkey=app.rsasign-method = RS512,ttl = 10m
  • 默認值:"simple"
  • 環境變量:ETCD_AUTH_TOKEN

--bcrypt-cost

  • 指定用於哈希認證密碼的bcrypt算法的成本/強度。 有效值在4到31之間。
  • 默認值:10
  • 環境變量:(不支持)

實驗參數


--experimental-corrupt-check-time

  • 群集損壞檢查通過之間的時間間隔
  • 默認值:0s
  • 環境變量:ETCD_EXPERIMENTAL_CORRUPT_CHECK_TIME

--experimental-compaction-batch-limit

  • 設置每個壓縮批處理中刪除的最大修訂。
  • 默認值:1000
  • 環境變量:ETCD_EXPERIMENTAL_COMPACTION_BATCH_LIMIT

--experimental-peer-skip-client-san-verification

  • 跳過客戶端證書中對等連接的SAN字段驗證。 這可能是有幫助的,例如 如果群集成員在NAT后面的不同網絡中運行。在這種情況下,請確保使用基於私有證書頒發機構的對等證書.--peer-cert-file, --peer-key-file, --peer-trusted-ca-file
  • 默認值:false
  • 環境變量:ETCD_EXPERIMENTAL_PEER_SKIP_CLIENT_SAN_VERIFICATION


免責聲明!

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



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