↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

etcd 3.7

功能门控

etcd 3.7 开发、运维、升级、API 与内部原理中文指南

本文概述了管理员可在 etcd 中指定的各种功能门控。

请参阅 feature stages 了解功能各阶段的说明。

概述

功能门控是一组描述 etcd 特性的 key=value 键值对。 可使用 etcd 的 --feature-gates 命令行标志来开启或关闭这些特性。

etcd 允许你启用或禁用一组功能门控。 使用 -h 标志查看全部功能门控列表。 要设置功能门控,请使用 --feature-gates 标志,并在命令行中指定功能对的列表:

--feature-gates=...,StopGRPCServiceOnDefrag=true

或在 YAML 配置文件中指定 feature-gates:

feature-gates: ...,StopGRPCServiceOnDefrag=true

变更 embed.EtcdServer 结构体

在 3.6 版本中,字段 ServerFeatureGate 被添加至 embed.Config,应取代以下实验性字段:

package embed

type Config struct {
  // Deprecated: Use CompactHashCheck Feature Gate instead. Will be decommissioned in v3.7.
  ExperimentalCompactHashCheckEnabled bool `json:"experimental-compact-hash-check-enabled"`

  // Deprecated: Use InitialCorruptCheck Feature Gate instead. Will be decommissioned in v3.7.
  ExperimentalInitialCorruptCheck bool `json:"experimental-initial-corrupt-check"`

  // Deprecated: Use TxnModeWriteWithSharedBuffer Feature Gate instead. Will be decommissioned in v3.7.
  ExperimentalTxnModeWriteWithSharedBuffer bool `json:"experimental-txn-mode-write-with-shared-buffer"`

  // Deprecated: Use StopGRPCServiceOnDefrag Feature Gate instead. Will be decommissioned in v3.7.
  ExperimentalStopGRPCServiceOnDefrag bool `json:"experimental-stop-grpc-service-on-defrag"`

  // Deprecated: Use LeaseCheckpoint Feature Gate instead. Will be decommissioned in v3.7.
  ExperimentalEnableLeaseCheckpoint bool `json:"experimental-enable-lease-checkpoint"`
  
  // Deprecated: Use LeaseCheckpointPersist Feature Gate instead. Will be decommissioned in v3.7.
  ExperimentalEnableLeaseCheckpointPersist bool `json:"experimental-enable-lease-checkpoint-persist"`

+ // ServerFeatureGate is a server level feature gate
+ ServerFeatureGate featuregate.FeatureGate
  ...

Alpha 或 Beta 功能的功能门控

下表总结了可在 etcd 上设置的功能门控。

特性 默认值 阶段 说明
CompactHashCheck false Alpha 在向任何客户端或对等成员提供服务前启用数据损坏检查。
InitialCorruptCheck false Alpha 启用领导者定期检查跟随者的压缩哈希值。
LeaseCheckpoint false Alpha 启用领导者向其他成员发送定期检查点,以防止领导者变更时剩余 TTL 被重置。
LeaseCheckpointPersist false Alpha 启用持久化剩余 TTL,以防止长期租约的无限自动续期。
SetMemberLocalAddr false Alpha 启用在与对等成员通信时,使用初始广告对等 URL 中指定的第一个非环回本地地址作为本地地址。
StopGRPCServiceOnDefrag false Alpha 启用在执行碎片整理时停止 etcd gRPC 服务对客户端请求的响应。
TxnModeWriteWithSharedBuffer true Beta 启用写入事务在其只读检查操作中使用共享缓冲区。

使用某个功能

特性阶段

特性可处于 Alpha、Beta、GA 或 Deprecated 阶段。 Alpha 特性表示:

  • 默认禁用。
  • 可能存在缺陷。启用该功能可能会暴露缺陷。
  • 该功能的支持可能随时被取消,且不另行通知。
  • 该 API 可能在后续软件版本中以不兼容的方式发生变更,且不另行通知。
  • 由于存在更高的缺陷风险且缺乏长期支持,仅建议在短期测试集群中使用。

Beta 特性表示:

  • 默认启用。
  • 该功能经过充分测试,启用该功能被认为是安全的。
  • 整体功能的支持不会被移除,尽管细节可能会变更。
  • 仅建议用于非业务关键场景,因为更广泛采用可能导致发现新的难以察觉的缺陷。
说明

请务必尝试使用 Beta 特性,并提供反馈! 进入正式发布阶段后,我们可能不再适合对这些特性进行进一步修改。

一个“正式发布”(General Availability,GA)特性也被称为“稳定”特性。其含义为:

  • 该功能始终处于启用状态;无法将其禁用。
  • 相应的功能门控已不再需要。
  • 稳定版本的功能将在后续多个发布版本的软件中出现。

一个已弃用(Deprecated)的功能表示:

  • 功能门控已不再使用。
  • 该功能已进入正式发布阶段或已被移除。
来源与许可

文档取自 pig.center · 上游文档

版本
3.7
许可
CC-BY-4.0
来源修订
dba8dc7e1afd3f6eea300ebf9ecb67c731145f1ee7db1ca0d3ebc49508812609
译文修订
dba8dc7e1afd3f6eea300ebf9ecb67c731145f1ee7db1ca0d3ebc49508812609
原始 Markdown