Настройка таймаутов etcd

Параметры, необходимые для работы etcd в растянутом кластере

Возможные проблемы

etcd - надежное key-value хранилище для критически важных данных, где Kubernetes API server хранит свое состояние. Значения не считаются записанными, пока кворум узлов не подтвердит запись данных. Кроме того, etcd постоянно проверяет, что в кластере есть лидер и каждый узел знает, какой именно. Обычно кластер etcd запускается на узлах в одном дата-центре, где задержка мала, а таймауты по умолчанию настроены на максимально быстрое сообщение об ошибках. В растянутом кластере, где узлы находятся в разных дата-центрах, RTT значительно выше, и стандартные таймауты могут вызывать ложные срабатывания, как при разделении сети. В этом случае данные остаются согласованными, но etcd перейдет в readonly-режим, чтобы предотвратить split-brain. Если это происходит часто, многие другие компоненты Kubernetes начинают падать с неинформативными сообщениями об ошибках.

Конфигурация

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

  • heartbeat-interval - интервал между heartbeat
  • election-timeout - время ожидания heartbeat перед запуском выборов

Пример аргументов командной строки для etcd:

--election-timeout=10000 --heartbeat-interval=1000

Пример для Talos

Если вы управляете узлами Talos через talm, добавьте параметры в секцию cluster.etcd шаблона:

cluster:
  etcd:
    extraArgs:
      heartbeat-interval: "1000"
      election-timeout: "10000"
Last modified 2026-06-29: translate 1.5 (73d3d03)