【ETCD】etcd中配置参数详解

详细记录etcd服务启动的各个参数

1、etcd成员相关的配置项

--name 'default'  为该成员指定一个易读的名称。--data-dir '${name}.etcd'  数据存储目录的路径。--wal-dir ''  用于存放专用WAL(Write-Ahead Log)的目录路径。--snapshot-count '100000'  触发快照到磁盘的已提交事务数量。--heartbeat-interval '100'  心跳间隔时间(毫秒)。--election-timeout '1000'  选举超时时间(毫秒)。详见调优文档。--initial-election-tick-advance 'true'  是否在启动时加速初始选举计时,从而加快选举速度。--listen-peer-urls 'http://localhost:2380'  用于监听对等节点流量的URL列表。--listen-client-urls 'http://localhost:2379'  用于监听客户端 gRPC 和 HTTP 流量的 URL 列表(当未指定 --listen-client-http-urls 时生效)。--listen-client-http-urls ''  仅用于 HTTP 客户端流量的 URL 列表。启用此标志会将 HTTP 服务从 --listen-client-urls 中移除。--max-snapshots '5'  保留的最大快照文件数量(0表示不限制)。--max-wals '5'  保留的最大WAL文件数量(0表示不限制)。--quota-backend-bytes '0'  当后端大小超过给定配额时触发警报(0表示使用默认低空间配额)。--backend-bbolt-freelist-type 'map'  指定Boltdb后端使用的freelist类型(支持 array 和 map 类型)。--backend-batch-interval ''  提交后端事务前的最大时间间隔。--backend-batch-limit '0'  提交后端事务前的最大操作数。--max-txn-ops '128'  每个事务允许的最大操作数。--max-request-bytes '1572864'  服务器可接受的客户端请求的最大字节数。--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状态的地址。

2、Etcd集群引导和发现配置参数

--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'表示5分钟)。  'revision'表示基于修订号的保留。--enable-v2 'false'  接受etcd V2客户端请求。已被弃用,并将在v3.6中移除。--v2-deprecation 'not-yet'  v2存储的弃用阶段。允许选择更高的兼容模式。支持的值:  'not-yet'                // 如果v2存储有有效内容,发出警告(v3.5默认值)。  'write-only'             // 不允许自定义v2状态(计划在v3.6中默认启用)。  'write-only-drop-data'   // 自定义的v2状态将被删除!  'gone'                   // v2存储不再维护(计划在v3.7中成为默认值)。

3、Etcd安全和TLS配置

--cert-file ''  客户端服务器TLS证书文件的路径。--key-file ''  客户端服务器TLS密钥文件的路径。--client-cert-auth 'false'  启用客户端证书认证。  建议启用客户端证书认证,以防止未经认证的客户端攻击(例如CVE-2023-44487),特别是在将etcd作为公共服务运行时。--client-crl-file ''  客户端证书吊销列表文件的路径。--client-cert-allowed-hostname ''  客户端证书认证允许的TLS主机名。--trusted-ca-file ''  客户端服务器TLS受信任的CA证书文件路径。  设置此参数时,无论`--client-cert-auth`的值如何,都会自动启用客户端证书认证。--auto-tls 'false'  使用自动生成的证书进行客户端TLS认证。--peer-cert-file ''  对等节点服务器TLS证书文件的路径。--peer-key-file ''  对等节点服务器TLS密钥文件的路径。--peer-client-cert-auth 'false'  启用对等节点客户端证书认证。  建议启用对等节点证书认证,以防止未经认证的伪造对等节点攻击(例如CVE-2023-44487)。--peer-trusted-ca-file ''  对等节点服务器TLS受信任的CA文件路径。--peer-cert-allowed-cn ''  连接到对等端点时,客户端证书所需的CN(通用名称)。--peer-cert-allowed-hostname ''  对等认证中允许的TLS主机名。--peer-auto-tls 'false'  如果未提供`--peer-key-file``--peer-cert-file`,则使用自生成证书进行对等TLS认证。--self-signed-cert-validity '1'  自动生成的客户端和对等节点证书的有效期,单位为年,默认值为1。--peer-crl-file ''  对等节点证书吊销列表文件的路径。--cipher-suites ''  支持的TLS密码套件列表,客户端/服务器和对等节点之间使用(空值将由Go自动填充)。--cors '*'  CORS(跨域资源共享)允许的源列表,逗号分隔(空值或`*`表示允许所有源)。--host-whitelist '*'  如果服务器不安全,HTTP客户端请求中可接受的主机名(空值或`*`表示允许所有主机)。--tls-min-version 'TLS1.2'  etcd支持的最低TLS版本。--tls-max-version ''  etcd支持的最高TLS版本(空值将由Go自动填充)。

4、etcd认证相关参数

--auth-token 'simple'  指定v3认证的令牌类型及特定选项,特别适用于JWT。格式为"type,var1=val1,var2=val2,..."。  可选类型:'simple''jwt'。  可用变量:  - `sign-method`: 指定JWT的签名方法,可选值为 'ES256''ES384''ES512''HS256''HS384''HS512''RS256''RS384''RS512''PS256''PS384''PS512'。  - `pub-key`: 指定用于验证JWT的公钥路径。  - `priv-key`: 指定用于签署JWT的私钥路径。  - `ttl`: 指定JWT令牌的生存时间(TTL)。--bcrypt-cost 10  指定用于哈希认证密码的bcrypt算法的成本/强度。有效值为4到31之间的整数,值越高,计算成本越高,安全性越强。--auth-token-ttl 300  认证令牌的生存时间(TTL),单位为秒。

5、etcd性能监控与指标

--enable-pprof 'false'  是否启用通过HTTP服务器提供的运行时性能分析数据。  地址为客户端URL加上"/debug/pprof/"--metrics 'basic'  设置导出指标的详细程度。  可选值:  - `basic`: 导出基本指标。  - `extensive`: 包括服务器端gRPC直方图指标在内的详细指标。--listen-metrics-urls ''  用于监听指标和健康检查端点的URL列表。

6、etcd日志配置

--logger 'zap'  当前仅支持使用'Zap'进行结构化日志记录。--log-outputs 'default'  指定日志输出目标。  - 可以使用'stdout''stderr'来跳过`journald`日志(即使在`systemd`下运行)。  - 也可以提供逗号分隔的输出目标列表。--log-level 'info'  配置日志级别。支持的级别包括:  - `debug`: 调试信息。  - `info`: 普通信息。  - `warn`: 警告信息。  - `error`: 错误信息。  - `panic`: 崩溃信息。  - `fatal`: 致命错误信息。--enable-log-rotation 'false'  是否启用日志轮转,仅适用于单个日志输出文件。--log-rotation-config-json '{"maxsize": 100, "maxage": 0, "maxbackups": 0, "localtime": false, "compress": false}'  配置日志轮转(启用时生效)。  - `maxsize`: 单个日志文件的最大大小(单位:MB)。  - `maxage`: 日志文件的最大保留天数(0表示不限制)。  - `maxbackups`: 最大备份数量(0表示不限制)。  - `localtime`: 是否使用本地时间。  - `compress`: 是否启用gzip压缩。

Etcd 启动重要参数汇总表

分类参数作用备注
节点配置--name设置节点名称,必须唯一。确保集群中节点识别准确。
--data-dir指定数据存储目录。用于持久化存储etcd数据。
集群配置--initial-advertise-peer-urls设置对等节点的广告URL。集群内节点间通信地址。
--listen-peer-urls设置对等节点的监听URL。监听集群内部通信流量。
--listen-client-urls设置客户端访问的监听URL。客户端连接etcd的入口。
--initial-cluster配置初始集群成员列表。启动新集群时必需。
--initial-cluster-state指定集群状态(newexisting)。新建或加入已有集群时使用。
--initial-cluster-token设置集群唯一标识符。防止跨集群的意外交互。
安全配置--cert-file / --key-file设置TLS证书和密钥文件。启用加密通信。
--client-cert-auth启用客户端证书认证。增强安全性,防止未经认证访问。
--trusted-ca-file设置受信任的CA证书路径。验证客户端和对等节点证书。
--peer-client-cert-auth启用对等节点证书认证。提高集群安全性。
--peer-trusted-ca-file设置对等节点的CA证书路径。对等通信的信任链验证。
性能调优--heartbeat-interval设置心跳间隔时间(毫秒)。影响集群同步速度和稳定性。
--election-timeout设置选举超时时间(毫秒)。影响Raft选举速度。
--snapshot-count设置触发快照的事务数。控制快照频率,平衡性能与存储。
--max-txn-ops设置每个事务允许的最大操作数。防止事务过大影响性能。
认证与访问控制--auth-token指定认证令牌类型。支持simplejwt类型。
--auth-token-ttl设置认证令牌的有效时间(秒)。控制令牌过期时间。
日志管理--logger设置日志记录方式。当前仅支持zap
--log-level设置日志级别。支持debuginfowarn等。
--log-outputs设置日志输出目标。可指定stdoutstderr或文件路径。
调试与监控--enable-pprof启用性能分析。通过/debug/pprof/访问性能数据。
--metrics设置导出指标的详细程度。支持basicextensive

说明:

  • 节点与集群配置 是确保集群正常启动和运行的核心,尤其在多节点部署时尤为重要。
  • 安全配置 则涉及到数据和通信的加密与认证,建议在生产环境中务必启用。
  • 性能调优 参数影响etcd的资源使用与集群稳定性,需要根据具体需求进行调整。
  • 日志与监控 有助于故障排查和性能优化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/61273.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

005 MATLAB符号微积分

前言: 在MATLAB中,数值与符号的主要区别在于它们的处理方式和应用场景 数值计算适用于实际的数值计算问题,如矩阵运算、数据分析等。符号计算适用于符号推导、公式化简和符号解析,如理论物理和工程计算。 01 符号对象 1.基本符…

“岗位复合化、技能层次化” 高职大数据技术专业人才培养实践

在全球数字化浪潮的推动下,大数据技术已经成为引领社会进步和经济发展的核心动力。随着《关于深化现代职业教育体系建设改革的意见》等系列指导问文件的发布,我国高职大数据技术专业的教育正迎来全新机遇与挑战。这些政策不仅明确了职业教育改革的方向&a…

51c自动驾驶~合集38

我自己的原文哦~ https://blog.51cto.com/whaosoft/12358456 #GaussianPretrain 万能3D高斯预训练表示!爆拉3D检测、Occ、高精地图等四大任务! 受Tesla的技术的推动,越来越多的厂商开始走"纯视觉"的路线,多数方案还…

MongoDB集群分片安装部署手册

文章目录 一、集群规划1.1 集群安装规划1.2 端口规划1.3 目录创建 二、mongodb安装(三台均需要操作)2.1 下载、解压2.2 配置环境变量 三、mongodb组件配置3.1 配置config server的副本集3.1.1 config配置文件3.1.2 config server启动3.1.3 初始化config …

AIGC--------AIGC在医疗健康领域的潜力

AIGC在医疗健康领域的潜力 引言 AIGC(Artificial Intelligence Generated Content,人工智能生成内容)是一种通过深度学习和自然语言处理(NLP)等技术生成内容的方式。近年来,AIGC在医疗健康领域展现出了极…

数据结构 (18)数的定义与基本术语

前言 数据结构是计算机科学中的一个核心概念,它描述了数据元素之间的关系以及这些元素在计算机中的存储方式。 一、数的定义 在计算机科学中,“数”通常指的是树形数据结构,它是一种非线性的数据结构,由节点(或称为元素…

基于PoE交换机的智慧停车场监控组网应用

伴随城市发展快速,汽车保有量也不断增长,导致停车管理问题也愈发凸显。针对包括路侧停车位、地面停车场、地下停车场等场景的停车管理需求,通常会部署监控设备进行车位监测、现场安全监测等,助力构建智能化停车管理。因此如何为分…

【RocketMQ事务消息如何实现】

贴上一段实现代码, 业务中可以参考使用 Component public class TestIdpSender {public void sendInTransaction(String topic, String tag, String message){Message<String> msg MessageBuilder.withPayload(message).build();String dt topic ":" tag;…

ENSP IPV6-over-IPV4

IPv6是网络层协议的第二代标准协议&#xff0c;一个IPv6地址同样可以分为网络前缀和主机ID两个部分。 可以将IPV4的网络看成IPV6的承载网&#xff0c;只有IPv4网络是连通的&#xff0c;则IPv6网络才有可能连通。所以配置的时候需要先配置IPv4网络的路由功能&#xff0c;再配IP…

vue3透传Attributes

vue3透传Attributes,组件名称上写的事件、style、类名也会生效&#xff1b; 如果是透传事件&#xff0c;点击子组件内部按钮&#xff0c;会执行组件内部&#xff0c;再执行组件名上的 父组件 <script setup> import ChildView from ./ChildView.vuefunction onClick()…

18. C++STL 4(vector的使用, 空间增长, 迭代器失效详解)

⭐本篇重点&#xff1a;vector容器的使用详解 ⭐本篇代码&#xff1a;c学习/08.vector_test 橘子真甜/c-learning-of-yzc - 码云 - 开源中国 (gitee.com) 目录 一. vector的介绍 二. vector的使用 2.1 vector的定义 * 2.2 vector的迭代器和遍历 a operator[]访问 b vect…

深入探索机器学习性能优化的关键路径——《特征工程训练营》

通过“特征工程”技术&#xff0c;可优化训练数据&#xff0c;提升机器学习流程的输出效果&#xff01;“特征工程”基于现有数据设计相关的输入变量&#xff0c;由此简化训练过程&#xff0c;增强模型性能。调整超参数或模型的效果都不如特征工程&#xff1b;特征工程通过改变…

吉他初学者学习网站搭建系列(8)——如何练习音阶

文章目录 背景实现吉他面板音阶位置音阶识别 结语 背景 大家好&#xff0c;我是一个爱好音乐的非典型程序员&#xff01;我最近又往自己的网站中集成了一个模块——音阶。下面介绍一下背景。 很多吉他初学者在掌握了一些音阶知识后&#xff0c;可能不知道怎么训练自己的对音阶…

15.三数之和 python

三数之和 题目题目描述示例 1&#xff1a;示例 2&#xff1a;示例 3&#xff1a;题目链接 题解Python 实现解释提交结果 题目 题目描述 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满…

tauri使用github action打包编译多个平台arm架构和inter架构包踩坑记录

这些error的坑&#xff0c;肯定是很多人不想看到的&#xff0c;我的开源软件PakePlus是使用tauri开发的&#xff0c;PakePlus是一个界面化将任何网站打包为轻量级跨平台软件的程序&#xff0c;利用Tauri轻松构建轻量级多端桌面应用和多端手机应用&#xff0c;为了实现发布的时候…

Android 12.0 DocumentsUI文件管理器首次进入默认显示内部存储文件功能实现

1.前言 在12.0的系统rom定制化开发中,在关于文件管理器的某些功能中,在首次进入文件管理器的时候默认进入下载 文件夹,点击菜单选择内部存储的时候,会显示内部存储的内容,客户开发需要要求默认显示内部存储的文件 接下来分析下功能的实现 如图: 2.DocumentsUI文件管理器首…

抓包之wireshark基础用法介绍

写在前面 wireshark作为最优秀的抓包工具&#xff0c;有必要详细的看下其基本用法&#xff0c;所以本文就一起来做这件事吧&#xff01; 1&#xff1a;初步介绍 打开wireshark首先会进入如下的界面&#xff1a; 想要开始抓包&#xff0c;需要进行如下操作&#xff1a; 接着…

【Java基础入门篇】二、控制语句和递归算法

Java基础入门篇 二、控制语句和递归算法 2.1 switch-case多分支选择语句 switch执行case语句块时&#xff0c;若没有遇到break&#xff0c;则运行下一个case直到遇到break&#xff0c;最后的default表示当没有case与之匹配时&#xff0c;默认执行的内容&#xff0c;代码示例如…

【人工智能学习之STGCN训练自己的数据集】

STGCN训练自己的数据集 准备事项数据集制作视频转jsonjsons转jsonjson转npy&pkl 训练STGCN添加图结构修改训练参数开始训练测试 准备事项 st-gcn代码下载与环境配置 git clone https://github.com/yysijie/st-gcn.git cd st-gcn pip install -r requirements.txt cd torc…

Dify+Docker

1. 获取代码 直接下载 &#xff08;1&#xff09;访问 langgenius/dify: Dify is an open-source LLM app development platform. Difys intuitive interface combines AI workflow, RAG pipeline, agent capabilities, model management, observability features and more, …