etcd参数解释

etcd 版本
text 复制代码
[root@aaaaaa ~]#  /data/etcd/etcd-v3.5.15-linux-amd64/etcd --version
etcd Version: 3.5.15
Git SHA: 9a5533382
Go Version: go1.21.12
Go OS/Arch: linux/amd64
基础命令:
  • etcd [flags]:启动一个 etcd 服务器。
  • etcd --version:显示 etcd 的版本号。
  • etcd -h | --help:显示 etcd 的帮助信息。
  • etcd --config-file:服务器配置文件的路径。如果提供了配置文件,其他命令行标志和环境变量将被忽略。
成员配置:
  • --name 'default':此成员的人类可读名称。
  • --data-dir '${name}.etcd':数据目录的路径。
  • --wal-dir '':专用 WAL 目录的路径。
  • --snapshot-count '100000':触发磁盘快照的已提交事务数。
  • --heartbeat-interval '100':心跳间隔时间(毫秒)。
  • --election-timeout '1000':选举超时时间(毫秒)。
  • --initial-election-tick-advance 'true':是否在启动时快进初始选举 tick,以加快选举速度。
  • --listen-peer-urls 'http://localhost:2380':监听对等网络流量的 URL 列表。
  • --listen-client-urls 'http://localhost:2379':监听客户端 gRPC 流量的 URL 列表。
  • --listen-client-http-urls '':仅监听 HTTP 客户端流量的 URL 列表。启用此标志会从 --listen-client-urls 中移除 HTTP 服务。
  • --max-snapshots '5':保留的最大快照文件数(0 为无限制)。
  • --max-wals '5':保留的最大 WAL 文件数(0 为无限制)。
  • --quota-backend-bytes '0':后端大小超过给定配额时发出警报(0 默认为低空间配额)。
  • --backend-bbolt-freelist-type 'map':boltdb 后端使用的空闲列表类型(支持 array 和 map 类型)。
  • --backend-batch-interval '':提交后端事务之前的最大时间。
  • --backend-batch-limit '0':提交后端事务之前的最大操作数。
  • --max-txn-ops '128':事务中允许的最大操作数。
  • --max-request-bytes '1572864':服务器将接受的最大客户端请求大小(字节)。
  • --max-concurrent-streams 'math.MaxUint32':每个客户端同时可以打开的最大并发流数。
  • --enable-grpc-gateway:启用 GRPC 网关。
  • --grpc-keepalive-min-time '5s':客户端在 ping 服务器之前应等待的最小时间间隔。
  • --grpc-keepalive-interval '2h':服务器向客户端 ping 的频率,以检查连接是否存活(设置为 0 禁用)。
  • --grpc-keepalive-timeout '20s':在关闭无响应连接之前额外等待的时间(设置为 0 禁用)。
  • --socket-reuse-port 'false':启用时设置套接字选项 SO_REUSEPORT,允许重新绑定已在使用中的端口。
  • --socket-reuse-address 'false':启用时设置套接字选项 SO_REUSEADDR,允许绑定到 TIME_WAIT 状态的地址。
  • --raft-read-timeout '5s':设置在每个 rafthttp 连接上的读取超时。
  • --raft-write-timeout '5s':设置在每个 rafthttp 连接上的写入超时。
集群配置:
  • --initial-advertise-peer-urls 'http://localhost:2380':广告到整个集群的此成员的对等 URL 列表。
  • --initial-cluster 'default=http://localhost:2380':引导时的初始集群配置。
  • --initial-cluster-state 'new':初始集群状态(在引导新集群时为 'new',在向现有集群添加新成员时为 'existing')。初始化成功后(引导或添加),重启时将忽略此标志。
  • --initial-cluster-token 'etcd-cluster':在引导期间的 etcd 集群的初始集群令牌。指定此项可以防止在运行多个集群时发生意外的跨集群交互。
  • --advertise-client-urls 'http://localhost:2379':广告到公众的此成员的客户端 URL 列表。广告的客户端 URL 应对与 etcd 集群通信的机器可访问。etcd 客户端库解析这些 URL 以连接到集群。
  • --discovery '':用于引导集群的发现 URL。
  • --discovery-fallback 'proxy':当发现服务失败时的预期行为('exit' 或 'proxy')。"proxy" 仅支持 v2 API。
  • --discovery-proxy '':用于发现服务流量的 HTTP 代理。
  • --discovery-srv '':用于引导集群的 DNS srv 域。
  • --discovery-srv-name '':引导时查询的 dns srv 名称后缀。
  • --strict-reconfig-check 'true':拒绝可能导致丧失法定人数的重新配置请求。
  • --pre-vote 'true':启用以运行额外的 Raft 选举阶段。
  • --auto-compaction-retention '0':自动压缩保留长度。0 表示禁用自动压缩。
  • --auto-compaction-mode 'periodic':解释 'auto-compaction-retention' 为:periodic|revision。'periodic' 表示基于持继时间的保留,如果没有提供时间单位,默认为小时(例如 '5m')。'revision' 表示基于修订号的保留。
  • --enable-v2 'false':接受 etcd V2 客户端请求。已弃用,将在 v3.6 中废止。
  • --v2-deprecation 'not-yet':v2store 弃用的阶段。允许选择加入更高的兼容模式。支持的值包括:
    'not-yet':如果 v2store 有有意义的内容,则发出警告(v3.5 中的默认值)
    'write-only':不允许自定义 v2 状态(计划在 v3.6 中默认)
    'write-only-drop-data':将删除自定义 v2 状态!
    'gone':不再维护 v2store。(计划在 v3.7 中默认)
安全配置:
  • --cert-file '':客户端服务器 TLS 证书文件的路径。
  • --key-file '':客户端服务器 TLS 密钥文件的路径。
  • --client-cert-auth 'false':启用客户端证书认证。
  • --client-cert-file '':显式对等客户端 TLS 证书文件的路径,否则在需要客户端认证时将使用证书文件。
  • --client-key-file '':显式对等客户端 TLS 密钥文件的路径,否则在需要客户端认证时将使用密钥文件。
  • --client-crl-file '':客户端证书撤销列表文件的路径。
  • --client-cert-allowed-hostname '':客户端证书认证的 SAN 主机名的逗号分隔列表。
  • --trusted-ca-file '':客户端服务器 TLS 可信 CA 证书文件的路径。
  • --auto-tls 'false':使用生成的证书进行客户端 TLS。
  • --peer-cert-file '':对等服务器 TLS 证书文件的路径。
  • --peer-key-file '':对等服务器 TLS 密钥文件的路径。
  • --peer-client-cert-auth 'false':启用对等客户端证书认证。
  • --peer-trusted-ca-file '':对等服务器 TLS 可信 CA 证书文件的路径。
  • --peer-cert-allowed-cn '':允许的对等 TLS 认证的 CN 的逗号分隔列表。
  • --peer-cert-allowed-hostname '':允许的对等 TLS 认证的 SAN 主机名的逗号分隔列表。
  • --peer-auto-tls 'false':如果未提供 --peer-key-file 和 --peer-cert-file,则使用自动生成的证书进行对等 TLS。
  • --peer-client-cert-file '':显式对等客户端 TLS 证书文件的路径,否则在需要客户端认证时将使用对等证书文件。
  • --peer-client-key-file '':显式对等客户端 TLS 密钥文件的路径,否则在需要客户端认证时将使用对等密钥文件。
  • --self-signed-cert-validity '1':当您指定 ClientAutoTLS 和 PeerAutoTLS 时,etcd 自动生成的客户端和对等证书的有效期,单位为年,默认为 1 年。
  • --peer-crl-file '':对等证书撤销列表文件的路径。
  • --cipher-suites '':客户端/服务器和对等之间支持的 TLS 密码套件的逗号分隔列表(为空将由 Go 自动填充)。
  • --cors '*':CORS(跨源资源共享)的来源白名单,逗号分隔(为空或 * 表示允许所有)。
  • --host-whitelist '*':如果服务器不安全,接受来自 HTTP 客户端请求的主机名,逗号分隔(为空或 * 表示允许所有)。
  • --tls-min-version 'TLS1.2':etcd 支持的最小 TLS 版本。可能的值:TLS1.2, TLS1.3。
  • --tls-max-version '':etcd 支持的最大 TLS 版本。可能的值:TLS1.2, TLS1.3(为空将由 Go 自动填充)。
授权和认证:
  • --auth-token 'simple':指定 v3 认证令牌类型及其选项('simple' 或 'jwt')。
  • --bcrypt-cost 10:指定 bcrypt 算法用于哈希认证密码的成本/强度。有效值在 4 到 31 之间。
  • --auth-token-ttl 300:auth-token-ttl 的时间(秒)。
性能分析和监控:
  • --enable-pprof 'false':通过 HTTP 服务器启用运行时分析数据。地址位于客户端 URL + "/debug/pprof/"。
  • --metrics 'basic':设置导出度量的详细级别,指定 'extensive' 包括服务器端 grpc 直方图度量。
  • --listen-metrics-urls '':监听 /metrics 和 /health 端点的 URL 列表。对于 https,使用客户端 URL TLS 信息。
日志配置:
  • --logger 'zap':当前仅支持 'zap' 结构化日志。
  • --log-outputs 'default':指定 'stdout' 或 'stderr' 跳过 journald 日志记录,即使在 systemd 下运行,或列出逗号分隔的输出目标。
  • --log-level 'info':配置日志级别。仅支持 debug, info, warn, error, panic 或 fatal。
  • --enable-log-rotation 'false':启用单个 log-outputs 文件目标的日志轮换。
  • --log-rotation-config-json '{"maxsize": 100, "maxage": 0, "maxbackups": 0, "localtime": false, "compress": false}':如果启用,使用 JSON 日志配置配置日志轮换。MaxSize(MB),MaxAge(天,0=无限制),MaxBackups(0=无限制),LocalTime(使用计算机的本地时间),Compress(gzip)。
实验性分布式跟踪:
  • --experimental-enable-distributed-tracing 'false':启用实验性分布式跟踪。
  • --experimental-distributed-tracing-address 'localhost:4317':分布式跟踪收集器地址。
  • --experimental-distributed-tracing-service-name 'etcd':分布式跟踪服务名称,必须在所有 etcd 实例中相同。
  • --experimental-distributed-tracing-instance-id '':分布式跟踪实例 ID,每个 etcd 实例必须唯一。
  • --experimental-distributed-tracing-sampling-rate '0':每百万跨度收集的样本数。默认禁用。
v2 代理(在 v3.6 中将被弃用):
  • --proxy 'off':代理模式设置('off', 'readonly' 或 'on')。
  • --proxy-failure-wait 5000:端点保持失败状态的时间(毫秒)。
  • --proxy-refresh-interval 30000:端点刷新间隔的时间(毫秒)。
  • --proxy-dial-timeout 1000:拨号超时的时间(毫秒)。
  • --proxy-write-timeout 5000:写入超时的时间(毫秒)。
  • --proxy-read-timeout 0:读取超时的时间(毫秒)。
实验性功能:
  • --experimental-initial-corrupt-check 'false':启用在为任何客户端/对等流量提供服务之前检查数据损坏。
  • --experimental-corrupt-check-time '0s':集群损坏检查通过之间的时间间隔。
  • --experimental-compact-hash-check-enabled 'false':启用领导者定期检查追随者压缩哈希。
  • --experimental-compact-hash-check-time '1m':领导者检查追随者压缩哈希之间的时间间隔。
  • --experimental-enable-v2v3 '':通过 v3 后端在给定前缀下服务 v2 请求。已弃用,将在 v3.6 中废止。
  • --experimental-enable-lease-checkpoint 'false':启用主要出租人持久化租约剩余 TTL,以防止长期租约的无限自动续约。
  • --experimental-enable-lease-checkpoint-persist 'false':启用持久化剩余 TTL,以防止长期租约的无限自动续约。在 v3.6 中始终启用。应用于确保从启用此功能的 v3.5 集群平滑升级。需要启用 experimental-enable-lease-checkpoint。
  • --experimental-compaction-batch-limit 1000:每个压缩批次中删除的最大修订数。
  • --experimental-peer-skip-client-san-verification 'false':跳过对等连接中客户端证书的 SAN 字段验证。
  • --experimental-watch-progress-notify-interval '10m':定期观察进度通知的周期。
  • --experimental-downgrade-check-time:两次降级状态检查之间的时间间隔。
  • --experimental-memory-mlock:启用以强制 etcd 页面(特别是 bbolt)保留在 RAM 中。
  • --experimental-warning-apply-duration '100ms':如果请求超过此持续时间,则生成警告。
  • --experimental-txn-mode-write-with-shared-buffer 'true':启用写事务在其只读检查操作中使用共享缓冲区。
  • --experimental-bootstrap-defrag-threshold-megabytes:在 etcd 服务器引导期间启用碎片整 理,如果数据库文件大小超过此阈值(以 MB 为单位)。
不安全的特性:
  • --force-new-cluster 'false':强制创建一个新的集群配置,从当前状态的一个成员开始。这是一个危险的操作,可能会导致数据丢失。
  • --unsafe-no-fsync 'false':禁用所有后端文件系统的同步操作。这可以提高性能,但也增加了数据丢失的风险。
  • --experimental-bootstrap-file '':指定一个包含引导配置的文件,这是一个实验性功能。
相关推荐
数据皮皮侠41 分钟前
最新上市公司业绩说明会文本数据(2017.02-2025.08)
大数据·数据库·人工智能·笔记·物联网·小程序·区块链
小云数据库服务专线1 小时前
GaussDB数据库架构师修炼(十六) 如何选择磁盘
数据库·数据库架构·gaussdb
码出财富2 小时前
SQL语法大全指南
数据库·mysql·oracle
异世界贤狼转生码农4 小时前
MongoDB Windows 系统实战手册:从配置到数据处理入门
数据库·mongodb
QuZhengRong4 小时前
【数据库】Navicat 导入 Excel 数据乱码问题的解决方法
android·数据库·excel
码农阿豪4 小时前
Windows从零到一安装KingbaseES数据库及使用ksql工具连接全指南
数据库·windows
时序数据说10 小时前
时序数据库市场前景分析
大数据·数据库·物联网·开源·时序数据库
听雪楼主.13 小时前
Oracle Undo Tablespace 使用率暴涨案例分析
数据库·oracle·架构
我科绝伦(Huanhuan Zhou)13 小时前
KINGBASE集群日常维护管理命令总结
数据库·database
妖灵翎幺13 小时前
Java应届生求职八股(2)---Mysql篇
数据库·mysql