腾讯云云原生ETCD对接使用完全指南:从集群创建到生产实践

apphuang2026年06月28日 14:07:163

引言:云原生时代的分布式基石

在云原生架构大行其道的今天,etcd作为分布式键值存储系统,已经成为Kubernetes等核心基础设施不可或缺的组件。etcd具备两个最重要的特点:分布式存储与强一致性,这两个特性对于云原生架构来说极为重要。etcd可以容忍集群中部分节点故障,只要有一半以上节点存活即可对外提供服务,主要用于元数据存储、服务发现、分布式选举等场景。腾讯云推出的云原生ETCD(Cloud Service for etcd),是基于开源etcd针对云原生服务场景进行优化的托管解决方案,由腾讯云容器团队提供,完全兼容开源的etcd分布式存储能力。

然而,自建etcd往往面临诸多挑战:用户对etcd了解程度不够,难以快速上手;缺乏使用经验,遇到问题难以快速定位;还需要维护一套监控告警系统和备份恢复机制,增加了运维负担。腾讯云容器团队目前线上运维了上万套Kubernetes集群,后端使用了上千套etcd集群作为支撑存储,积累了大量的实践经验。云原生ETCD服务正是将这些经验产品化,帮助用户降低etcd的运维负担,更专注于业务发展。

本文将从零开始,系统讲解腾讯云云原生ETCD的对接与使用方法,涵盖集群创建、连接配置、数据操作、数据同步、备份恢复、监控告警、安全管理等全链路实践,帮助读者快速上手并投入生产使用。

需要先登录腾讯云控制台,点击:腾讯云控制台,还没有账号,点击:注册后再关联,已有账号点击:登录后再关联

一、云原生ETCD产品概述

1.1 什么是云原生ETCD

腾讯云云原生ETCD(Cloud Service for etcd)是一项全托管的etcd服务,它基于开源etcd构建,针对云原生服务场景进行了深度优化。该服务由腾讯云容器团队提供技术支持,全面兼容开源etcd的分布式存储能力,为用户提供高稳定、可观测、免运维的云原生etcd服务。

该服务已于2022年6月8日结束内测,正式对外开放并开始商业化计费。在商业化之前,用户如需使用可以通过提交工单进行开通。

1.2 核心应用场景

etcd在云原生生态中扮演着关键角色,主要应用于以下场景:

  • 元数据存储:Kubernetes集群使用etcd存储所有集群状态和元数据信息,包括Pod、Service、ConfigMap等资源的定义与状态。
  • 服务发现:微服务架构中,各个组件可以通过etcd共享配置和服务发现信息,实现服务注册与发现。
  • 分布式选举:利用etcd的强一致性和Lease机制,可以实现分布式系统中的主节点选举。
  • 配置管理:集中存储和管理分布式系统的配置信息,通过Watch机制实现配置的实时推送。

1.3 产品核心功能

云原生ETCD提供了一键部署etcd集群的能力,支持集群高可用部署、HTTPS访问和数据自动压缩等功能。在日常运维管理方面,支持备份恢复、节点扩缩容和版本升级等全流程操作。

平台重点保障最近的两个etcd大版本的升级和稳定运行。例如,当前最新版本为3.5.4,则平台重点保障3.5.4和3.4.13的版本升级功能,并提供问题排障、故障恢复、Bugfix等支持。对于过期版本的集群,存在运行不稳定和集群升级失败的风险。

二、集群创建前的准备工作

2.1 服务角色授权

首次使用云原生ETCD服务,需要为该服务授权一个名为TKE_QCSLinkedRoleInEtcdService的服务相关角色。这个角色允许云原生ETCD服务代您访问和操作其他云资源,如云硬盘、对象存储等。授权操作可以在腾讯云控制台的访问管理模块中完成,系统会自动引导完成相关授权流程。

2.2 云资源权限准备

云原生ETCD服务在运行过程中会使用到多种云资源,首次使用之前需确保已经获取相关云资源的使用权限。具体涉及以下资源:

  • 云硬盘(CBS):用于etcd集群节点的数据持久化存储
  • 对象存储(COS):用于存储etcd集群的备份快照数据
  • 私有网络(VPC)与子网:用于集群的网络隔离与通信
  • 安全组:用于控制集群的网络访问
  • 负载均衡(CLB):用于提供集群的内网访问入口

三、创建云原生ETCD集群

3.1 进入控制台

登录腾讯云控制台后,进入云原生ETCD控制台(路径:容器服务 > 云原生ETCD),在页面上方选择需要创建集群的地域,单击"新建"按钮开始创建。当前云原生ETCD支持部署在北京、上海、广州等地域。集群创建后地域无法修改,建议根据业务所在地理位置选择靠近业务的地域,以降低访问延迟、提高数据传输速度。

3.2 集群信息配置

在集群信息页面,需要完成以下核心配置:

  • 集群名称:自定义集群名称,不超过60个字符
  • etcd版本:选择所需的etcd版本。建议选择平台重点保障的稳定版本
  • 所在地域:选择集群部署的地域,创建后不可修改
  • 集群网络:选择当前地域下已有的私有网络(VPC)。如果该地域下没有可用的VPC,需要先到私有网络控制台新建

3.3 高可用部署配置

为了确保集群的高可用性,云原生ETCD支持将集群节点随机部署在不同可用区。开启高可用部署后,系统要求至少有3个可选可用区的子网数量。高可用部署要求至少有3个etcd集群节点,且可用子网至少分布在3个不同的可用区。在这种部署模式下,单个可用区故障不会影响集群的正常服务。

节点子网的选择也非常关键:需要为etcd节点分配所选子网地址范围内的IP地址,应尽量选择IP数量充足且与其他产品使用无冲突的子网。内网访问地址默认分配在该所选子网中。

3.4 安全组配置

安全组具有防火墙的功能,用于设置节点的网络访问控制。云原生ETCD支持以下两种安全组设置方式:

  • 新建并绑定默认安全组,出/入站规则默认放通0.0.0.0/0和::/0的所有端口
  • 使用已有安全组,但需确认所选安全组放通所选子网的2379和2380端口,否则可能导致etcd实例创建失败

其中,2379端口用于客户端与etcd的通信,2380端口用于etcd集群节点之间的通信。在生产环境中,建议使用自定义安全组,严格限制访问来源IP范围,而非放通所有来源。

3.5 HTTPS与认证配置

云原生ETCD支持开启HTTPS双向认证及鉴权。为保障集群数据的安全传输,强烈建议开启HTTPS。需要注意的是,集群创建后该功能项不支持修改。在启用HTTPS的情况下,还可以进一步开启客户端证书认证功能。

3.6 数据备份策略配置

设置备份可以有效保护集群数据安全。在集群创建时,可以配置以下备份参数:

  • 备份间隔:以小时为单位设置备份间隔
  • 最大备份个数:上限为1000,超过该数目后最新备份信息将无法上传至对象存储COS存储桶

集群创建成功后将自动为您创建对象存储COS存储桶,并按照实际资源使用情况计费。备份快照将被存储在该存储桶中。

3.7 监控告警配置

云原生ETCD默认提供监控、告警功能,也支持用户额外集成云原生监控服务(Prometheus)实现集群的监控、分析和告警。如果已有Prometheus实例,可以选择已有实例进行集成,但要求该实例与etcd集群位于相同VPC下。云原生ETCD可以无缝对接腾讯云托管Prometheus监控服务(TMP),默认提供您需要关注的各项性能指标和可用性指标。

四、连接与访问云原生ETCD

4.1 获取集群访问地址

集群创建成功后,可以在云原生ETCD控制台的集群列表中找到目标集群,单击集群名称进入基本信息页面。在基本信息页面可以获取集群的访问地址。访问地址通常是一个内网IP或域名,端口为2379。

4.2 使用etcdctl命令行工具

etcdctl是etcd官方提供的命令行客户端工具,是操作etcd最直接的方式。在使用etcdctl之前,需要确保已安装该工具。

对于未开启HTTPS的集群,连接命令如下:

etcdctl --endpoints=http://<访问地址>:2379 put /test/key "hello world"
etcdctl --endpoints=http://<访问地址>:2379 get /test/key

对于开启了HTTPS的集群,需要指定CA证书、客户端证书和客户端私钥:

etcdctl --endpoints=https://<访问地址>:2379 \
  --cacert=/path/to/ca.crt \
  --cert=/path/to/client.crt \
  --key=/path/to/client.key \
  put /test/key "hello world"

etcdctl还支持snapshot相关操作,用于备份和恢复:

# 创建快照
etcdctl --endpoints=https://<访问地址>:2379 \
  --cacert=/path/to/ca.crt \
  --cert=/path/to/client.crt \
  --key=/path/to/client.key \
  snapshot save /path/to/snapshot.db

# 查看快照状态
etcdctl snapshot status /path/to/snapshot.db

4.3 使用Python客户端连接

云原生ETCD默认的版本都是3.x以上,支持HTTP和HTTPS两种访问方式。对于Python开发者,可以使用etcd3这个Python模块进行连接操作。

首先安装etcd3模块:

pip install etcd3

对于HTTP方式(未开启HTTPS),连接代码如下:

import etcd3

# HTTP方式连接
etcd = etcd3.client(host="<访问地址>", port=2379)

# 写入数据
etcd.put("name", "etcd-user")

# 读取数据
value, metadata = etcd.get("name")
print(value)  # 输出: b'etcd-user'

对于HTTPS方式(开启了HTTPS),需要获取CA证书、客户端证书和客户端私钥,保存到本地文件后进行连接:

import etcd3

# HTTPS方式连接,需要提供证书
etcd = etcd3.client(
    host="<访问地址>",
    port=2379,
    ca_cert="/path/to/etcd-CAcert",
    cert_cert="/path/to/etcd-Cert",
    cert_key="/path/to/etcd-Key"
)

# 写入数据
etcd.put("/app/config", '{"timeout": 30}')

# 读取数据
value, metadata = etcd.get("/app/config")
print(value)  # 输出: b'{"timeout": 30}'

# 获取所有以某个前缀开头的键
for value, metadata in etcd.get_prefix("/app/"):
    print(f"Key: {metadata.key}, Value: {value}")

etcd3模块的更多API使用方法可以参考其官方文档。

4.4 内网访问与网络连通性

云原生ETCD集群默认提供内网访问地址。客户端在与etcd集群通信时,需要确保客户端与etcd集群部署在相同的VPC下,或者通过云联网、专线等方式实现网络互通。如果源etcd集群和目标集群部署在不同的VPC下,推荐使用快照管理方式同步数据。

五、数据同步:将源集群数据迁移至云原生ETCD

5.1 数据同步场景

在实际生产环境中,用户可能已有自建的etcd集群,需要将数据迁移至腾讯云云原生ETCD进行统一管理。云原生ETCD提供了控制台数据同步功能,可以将源etcd集群的数据通过快照(Snapshot)形式一次性导入到目标实例。

5.2 同步前提条件

进行数据同步前,需要确保已经成功创建了云原生ETCD集群作为目标集群。同时,源etcd集群和目标集群需确保网络联通性,即部署在相同的VPC下。

5.3 同步操作步骤

数据同步的完整操作流程如下:

  1. 进入etcd集群列表页面,选择相关地域,在集群列表中单击需要操作的etcd集群名称
  2. 在数据同步页面,单击"创建同步任务"
  3. 选择任务类型:自动将源ETCD实例的数据通过Snapshot的形式一次性导入到目标实例
  4. 单击"下一步",进行任务配置:
    • 填写源etcd集群的服务地址。以现有云原生etcd集群为例,可从基本信息页面获取集群的访问地址
    • 根据源etcd集群的认证方式,完成密钥或证书信息的填写。以现有云原生etcd集群为例,可从基本信息页面获取集群的证书信息,并填写至TLS认证模块
  5. 单击"下一步",进行配置检查。后台会根据源etcd访问地址和认证信息进行连接测试,测试内容包括:网络是否可达、权限是否正确、版本是否支持以及数据大小是否满足预期
  6. 单击"确定",开始同步。预计同步过程将耗时约5分钟

六、备份与恢复:保障数据安全

6.1 备份机制概述

云原生ETCD支持自动和手动两种备份操作,每次备份的结果将以快照的方式展示在快照列表中。用户可以通过快照将集群恢复到之前的某个状态。

etcd集群创建成功后将自动为您创建对象存储COS存储桶(命名方式为"tencentcloud-tke-etcd-backups-地域缩写-账号appid"),备份快照将被存储在该存储桶中。相同地域下的etcd集群备份资源存储在同一存储桶中,以集群ID作为子目录进行隔离。

6.2 快照策略管理

etcd集群在创建时默认开启数据备份功能,系统将根据备份参数生成对应的定期快照策略。用户可以在快照管理页面查看策略详情,也可以通过单击快照策略模块右上角的"修改"来更新定期快照策略。可以修改的参数包括:

  • 备份间隔:以小时为单位设置备份间隔
  • 最大备份个数:上限为1000,超过该数目后最新备份信息将无法上传至COS存储桶

用户也可以通过单击快照策略模块右上角的"关闭"来关闭定期快照策略。需要注意的是,关闭定期快照策略后,已创建的快照不会被删除。

6.3 手动备份操作

除了定期自动备份外,云原生ETCD还支持立即备份操作。用户可以在快照管理页面单击"立即备份",在弹窗中输入快照名称,该快照将被展示在快照列表中。

6.4 快照恢复操作

etcd集群快照支持导入快照文件、恢复和删除操作。

  • 导入快照文件:通过该方式可以同步源etcd集群数据至云上etcd集群中。建议业务侧先停止对源etcd集群的访问,然后从本地添加源etcd集群的快照数据并通过快照恢复进行同步
  • 快照恢复:单击快照操作中的"恢复",将集群实例恢复到当前快照所记录状态。恢复过程将会使用快照数据覆盖集群现有数据,且恢复过程中集群暂时不可用,请谨慎操作
  • 快照删除:单击快照操作中的"删除",该快照将从快照列表和对应存储桶中删除,删除后不可恢复

6.5 快照文件生成注意事项

快照文件不可直接复制etcd server的db文件生成,复制过程中的源文件持续更新会导致数据损坏,无法确保数据完整性。正确的做法是使用etcdctl snapshot save命令生成快照,并使用etcdctl snapshot status命令校验快照状态。

如果已经开启了快照策略,但快照备份文件没有按照预期生成,可能是由于修改了etcd密码引起的。遇到这种情况,可以通过提交工单的方式咨询并解决问题。

七、监控与告警

7.1 默认监控指标

云原生ETCD默认为用户提供四个维度的监控指标数据,均支持设置告警:

  • 节点资源使用率:包括CPU使用率、内存使用率、磁盘使用率等
  • 集群业务指标:包括请求QPS、请求延迟、错误率等
  • 实例级别指标:包括etcd集群健康状态、Leader选举状态等
  • 实例接口指标:包括各API接口的调用次数、成功率等

7.2 配置告警策略

用户可以在实例详情页的"实例监控"中单击"配置告警",进入新建告警策略页面进行告警配置。可以根据业务需求设置不同指标的告警阈值和通知方式。

7.3 Prometheus集成监控

如果用户有自定义监控指标展示的需求,也支持使用Prometheus监控作为额外的监控服务,配置自定义的监控指标。云原生ETCD可以无缝对接腾讯云托管Prometheus监控服务(TMP),提供默认的性能指标和可用性指标。用户可以选择已有Prometheus实例进行集成,要求该实例与etcd集群位于相同VPC下。

八、安全管理最佳实践

8.1 启用HTTPS双向认证

在集群创建时,建议开启HTTPS双向认证及鉴权。启用HTTPS可以确保客户端与etcd集群之间的通信加密,防止数据在传输过程中被窃听或篡改。启用HTTPS后,客户端需要提供CA证书、客户端证书和客户端私钥才能访问集群。

8.2 安全组访问控制

安全组是控制网络访问的重要防线。在生产环境中,建议使用自定义安全组,严格限制访问来源IP范围,仅放通业务所需的IP段访问2379端口。etcd集群节点之间的2380端口通信也应受到适当保护。

8.3 KMS数据加密

在腾讯云TKE标准集群中,用户可以使用在密钥管理系统(KMS)中创建的密钥来加密Kubernetes Secrets数据。KMS加密过程基于Kubernetes提供的KMS Encryption Provider机制,使用信封加密的方式对存储在etcd中的Kubernetes Secrets数据进行自动加密和解密。这一机制可以有效保护敏感数据在etcd中的存储安全。

8.4 最小权限原则

在配置etcd的访问凭证时,应遵循最小权限原则。对于不同的应用程序和服务,应使用不同的客户端证书或凭证,并仅授予其所需的最小操作权限。避免使用etcd的root凭证在多个服务间共享。

8.5 版本管理与升级

云原生ETCD平台重点保障最近的两个etcd大版本的升级和稳定运行。用户应及时关注etcd版本的更新,将集群升级到平台支持的稳定版本。过期版本的集群存在运行不稳定和集群升级失败的风险。

九、成本构成与优化建议

9.1 费用构成

云原生ETCD服务已于2022年6月8日正式商业化计费。在使用过程中,费用主要来自以下方面:

  • 云原生ETCD实例费用:根据集群规格(节点数量、存储容量等)按量或包年包月计费
  • 负载均衡实例费用:用于集群内网访问
  • 对象存储COS费用:用于数据备份快照的存储

9.2 成本优化建议

  • 合理规划集群规格:根据业务实际需求选择合适的节点数量和存储容量,避免过度配置
  • 优化备份策略:合理设置备份间隔和最大备份个数,在数据安全与存储成本之间取得平衡
  • 利用内网访问:确保客户端与etcd集群在同一VPC内,避免产生额外的公网流量费用
  • 关注版本更新:及时升级到平台支持的稳定版本,避免因版本过旧导致的维护成本增加

十、常见问题解答

问1:首次使用云原生ETCD需要做哪些授权?

首次使用需要为该服务授权名为TKE_QCSLinkedRoleInEtcdService的服务相关角色。同时需要确保已获取云硬盘、对象存储、私有网络等云资源的使用权限。

问2:云原生ETCD支持哪些etcd版本?

平台重点保障最近的两个etcd大版本的升级和稳定运行。例如当前最新版本为3.5.4,则平台重点保障3.5.4和3.4.13版本。过期版本的集群存在运行不稳定和集群升级失败的风险。

问3:如何在Python中连接云原生ETCD?

可以使用etcd3Python模块进行连接。对于HTTP方式,直接指定host和port即可;对于HTTPS方式,需要提供CA证书、客户端证书和客户端私钥。安装命令为pip install etcd3

问4:云原生ETCD的备份快照存储在哪里?如何收费?

备份快照存储在腾讯云对象存储COS中。集群创建成功后将自动创建COS存储桶(命名方式为"tencentcloud-tke-etcd-backups-地域缩写-账号appid"),按照COS的实际资源使用情况计费。

问5:快照备份失败可能是什么原因?

如果已开启快照策略但快照备份文件没有按照预期生成,可能是由于修改了etcd密码引起的。可以通过提交工单的方式咨询并解决问题。

问6:云原生ETCD如何实现高可用?

云原生ETCD支持将集群节点部署到不同可用区。开启高可用部署后,要求至少有3个etcd集群节点分布在3个不同的可用区。在3个不同可用区的场景下,单可用区故障不影响集群正常服务。同时支持故障节点快速自愈,最大程度降低集群的不可用时间。

相关文章

腾讯云服务器购买优惠!3 个省钱攻略 + 1 个安全真相,新手必看!

腾讯云服务器购买优惠!3 个省钱攻略 + 1 个安全真相,新手必看!

最近后台总收到小伙伴私信:“腾讯云服务器看着挺好,但价格有点顶,学生党 / 小团队实在买不起咋办?” 别急!今天就来手把手教你 “花小钱办大事”,不光有省钱攻略,还会扒一扒大家最关心的安全问题,看完这…

After 10 Years as a Tencent Cloud Agent, Let Me Talk About Rebates

After 10 Years as a Tencent Cloud Agent, Let Me Talk About Rebates

Lately, I’ve been getting a lot of questions from friends: “Does Tencent offer rebates? Can you…

2026腾讯云代理商返利政策深度解析:头部代理合作指南与成本优化策略

2026腾讯云代理商返利政策深度解析:头部代理合作指南与成本优化策略

一、腾讯云代理商返利机制核心逻辑1. 行业背景与代理模式腾讯云作为国内公有云市场的第二大领导者(据IDC 2025年数据,占据国内27.6%的市场份额),采用渠道商代理模式拓展市场。代理商负…

2026腾讯云代理商返利政策深度解析:头部代理合作指南与成本优化策略

2026腾讯云代理商返利政策深度解析:头部代理合作指南与成本优化策略

一、腾讯云代理商返利机制核心逻辑1. 行业背景与代理模式腾讯云作为国内公有云市场的第二大领导者(据IDC 2025年数据,占据国内27.6%的市场份额),采用渠道商代理模式拓展市场。代理商负…

2026腾讯云代理商返佣政策全解析:五级代理体系与企业上云成本优化指南

2026腾讯云代理商返佣政策全解析:五级代理体系与企业上云成本优化指南

一、腾讯云五级代理体系:权益阶梯与合作价值1. 五级代理的核心权益差异腾讯云按规模、服务能力与合作深度,构建了从基础到顶级的五级代理体系,各级权益呈现显著阶梯差:•标准级代理:入门门槛最低,仅能提供基…

2026年腾讯云代理深度解析:从折扣体系到最优合作策略

2026年腾讯云代理深度解析:从折扣体系到最优合作策略

上海汪远信息科技有限公司作为腾讯云全国级殿堂级代理,凭借13年云服务经验与深厚的官方合作关系,为企业提供全方位的上云支持,可百度:上海汪远信息科技有限公司,微信:791201210一、腾讯云代理体系全…