Перейти к содержанию

Функциональные шлюзы

На этой странице представлен обзор функциональных шлюзов, которые администратор может задать для etcd.

Описание стадий возможностей приведено в разделе стадий возможностей .

Обзор

Функциональные шлюзы — набор пар key=value, описывающих возможности etcd. Возможности включаются и отключаются флагом командной строки --feature-gates процесса etcd.

etcd позволяет включить или отключить набор функциональных шлюзов. Полный список можно увидеть с помощью флага -h. Чтобы задать шлюзы, присвойте флагу --feature-gates список пар возможностей в командной строке:

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

Или укажите feature-gates в конфигурационном файле YAML:

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.

ВозможностьПо умолчаниюСтадияОписание
CompactHashCheckfalseAlphaВключает проверку повреждения данных до обслуживания клиентского или однорангового трафика.
InitialCorruptCheckfalseAlphaПозволяет лидеру периодически проверять хеши компактизации последователей.
LeaseCheckpointfalseAlphaПозволяет лидеру регулярно отправлять контрольные точки другим участникам, предотвращая сброс оставшегося TTL при смене лидера.
LeaseCheckpointPersistfalseAlphaВключает сохранение remainingTTL, предотвращая бесконечное автоматическое продление долгоживущих аренд.
SetMemberLocalAddrfalseAlphaИспользует первый заданный локальный адрес без loopback из initial-advertise-peer-urls как локальный адрес для связи с одноранговым участником.
StopGRPCServiceOnDefragfalseAlphaОстанавливает обслуживание клиентских запросов службой gRPC etcd на время дефрагментации.
TxnModeWriteWithSharedBuffertrueBetaПозволяет транзакции записи использовать общий буфер при проверочных операциях только для чтения.

Использование возможности

Стадии возможностей

Возможность может находиться на стадии Alpha, Beta, GA или Deprecated. Стадия Alpha означает:

  • По умолчанию возможность отключена.
  • Возможны ошибки; включение может проявить их.
  • Поддержка может быть прекращена в любой момент без уведомления.
  • API может без уведомления несовместимо измениться в следующем выпуске.
  • Из-за повышенного риска ошибок и отсутствия долгосрочной поддержки рекомендуется использовать только в краткоживущих тестовых кластерах.

Стадия Beta означает:

  • По умолчанию возможность включена.
  • Возможность хорошо протестирована и считается безопасной для включения.
  • Поддержка возможности в целом не будет прекращена, хотя детали могут измениться.
  • Рекомендуется только для некритичных сценариев: широкое применение может выявить новые труднообнаружимые ошибки.
Примечание

Пожалуйста, испытывайте возможности Beta и сообщайте о результатах! После выхода из beta внесение дополнительных изменений может стать непрактичным.

Стадия General Availability (GA), также называемая стабильной, означает:

  • Возможность всегда включена и не может быть отключена.
  • Соответствующий функциональный шлюз больше не нужен.
  • Стабильные версии возможности будут присутствовать во многих последующих выпусках программного обеспечения.

Стадия Deprecated означает:

  • Функциональный шлюз больше не используется.
  • Возможность перешла в GA или была удалена.