3.9. 确定 etcd 数据库的大小并了解其影响


etcd 数据库的大小直接影响到完成 etcd 碎片整理过程的时间。当 OpenShift Container Platform 检测到至少 45% 的碎片时会自动执行 etcd 碎片整理(一次在一个 etcd 成员中执行)。在进行碎片整理过程中,etcd 成员无法处理任何请求。对于较小的 etcd 数据库,碎片整理过程的时间一般会小于一秒。对于较大的 etcd 数据库,磁盘延迟会直接影响到碎片时间,从而导致额外的延迟,因为在进行碎片整理的过程中会阻止其它操作。

当网络分区隔离 control plane 节点时,etcd 数据库的大小是一个因素,当网络分区隔离 control plane 节点时,control plane 需要在重新建立通信后重新同步。

存在一个控制 etcd 数据库大小的最小选项,因为它依赖于系统中的操作器和应用程序。当您考虑系统操作的延迟范围时,请考虑同步或按 etcd 数据库大小进行碎片整理的影响。

影响的程度特定于部署。完成碎片处理的时间会在事务率中造成降级,因为 etcd 成员在碎片处理过程中无法接受更新。同样,对于有高的改变频率的大型数据库,etcd 重新同步的时间会影响到系统上的事务率和事务延迟。

在计划影响类型时,请考虑以下两个示例。

基于数据库大小的 etcd 碎片效果示例
将 etcd 数据库 1 GB 写入一个较慢的 7200 RPM 磁盘,达到 80 Mbit/s 大约需要 1 分钟和 40 秒。在这种情况下,碎片整理过程最少需要很长时间才能完成碎片整理。
数据库大小对 etcd 同步的影响示例
如果在其中一个 control plane 节点断开连接过程中更改了 etcd 数据库的 10%,则重新同步需要至少传输 100 MB。通过 1 Gbps 链接传输 100 MB 时会需要 800 ms。在使用 Kubernetes API 的常规事务的集群中,etcd 数据库大小越大,越可能出现网络不稳定的情况,会导致 control plane 不稳定。

您可以使用 OpenShift Container Platform 控制台或在 etcdctl 工具中运行命令来确定 etcd 数据库的大小。

流程

  • 要在 OpenShift Container Platform 控制台中查找数据库大小,进入 etcd 仪表板来查看报告 etcd 数据库大小的图表。
  • 要使用 etcdctl 工具查找数据库大小,您可以输入两个命令:

    1. 输入以下命令列出 pod:

      # oc get pods -n openshift-etcd -l app=etcd
      Copy to Clipboard Toggle word wrap

      输出示例

      NAME      READY   STATUS    RESTARTS   AGE
      etcd-m0   4/4     Running   4          22h
      etcd-m1   4/4     Running   4          22h
      etcd-m2   4/4     Running   4          22h
      Copy to Clipboard Toggle word wrap

    2. 输入以下命令并在输出中查看数据库大小:

      # oc exec -t etcd-m0 -- etcdctl endpoint status -w simple | cut -d, -f 1,3,4
      Copy to Clipboard Toggle word wrap

      输出示例

      https://198.18.111.12:2379, 3.5.6, 1.1 GB
      https://198.18.111.13:2379, 3.5.6, 1.1 GB
      https://198.18.111.14:2379, 3.5.6, 1.1 GB
      Copy to Clipboard Toggle word wrap

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat