一 示例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的名稱
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
二 配置項解析 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 環境變量: 作用: