29 июня 2026, 17:27
etcd-operator присоединяется к Cozystack с новым программный оболочку версии v1alpha2


Сообщество написало рабочий инструмент, а в CNCF решили сделать «свой, официальный». В результате забуксовали. А тем временем хитрый оператор etcd продолжает обрастать фичами и успешно крутиться в продакшене.
Проект etcd-operator, разрабатывающий инструмент для развертывания и обслуживания кластеров etcd в Kubernetes, стал частью экосистемы Cozystack. Наряду с передачей прав авторы представили полностью переписанную реализацию под новым api: etcd-operator.cozystack.io/v1alpha2. Она пришла на смену предыдущей версии etcd.aenix.io/v1alpha1.
Главное архитектурное новшество — отказ от управления узлами через StatefulSet. Теперь оператор работает с кластером напрямую через нативный Membership api самого etcd, используя операции MemberAdd, MemberPromote и MemberRemove. Это дает цельный и предсказуемый контроль над составом кластера. Код с нуля написал Тимофей Ларкин, один из мейнтейнеров оригинальной версии (ее исходники сохранены в ветке v1alpha1). Проект написан на Go и доступен под лицензией Apache 2.0.
Как работает новая архитектура управление кластерами. Она строится вокруг двух ресурсов.
EtcdClusterописывает желаемое состояние: количество реплик, версиюetcd, параметры хранилища, TLS, аутентификацию и тюнинг.EtcdMemberсоздается оператором индивидуально для каждого узла и управляет его Pod’ом и PVC.
Здесь нет привычного StatefulSet — каждый узел синхронизируется (reconcile) независимо. Изменения состава проходят строго через api: новые участники добавляются в режиме обучения (MemberAdd) и только потом зарабатывают право голоса (MemberPromote). Исключение происходит через аккуратный вывод из кворума (MemberRemove). Если кластер ставится на паузу, идентификаторы узлов не теряются. Подробное обоснование такой архитектуры можно найти в файле concepts.md репозитория.

Хотите выиграть призы и бонусы на аренду серверов?
Приглашаем решить ИТ-кроссворд! Более 100 вопросов на разные темы из мира ИИ и машинного обучения — ежедневно с 6 по 9 июля.
Зарегистрироваться →
Что изменилось по сравнению с v1alpha1
api-группа переехала с
etcd.aenix.ioнаetcd-operator.cozystack.io.На смену монолитному
StatefulSetпришли независимые ресурсыEtcdMember.Опасный свободный словарь spec.options заменен на строго типизированный набор параметров (
quota-backend-bytes, настройкиauto-compaction,snapshot-count). Раньше неверные флаги могли сломать логику оператора.Ресурс
EtcdBackupпереименован вEtcdSnapshotпри сохранении логики работы.Валидация манифестов перенесена из вебхука в CEL-правила.
Serviceкластера переведен в headless-режим — это обязательное условие для стабильных DNS-имен узлов.
Для бесшовного перехода написана утилита etcd-migrate. Она проводит in-place миграцию: подхватывает живой кластер старого оператора без перемещения данных, перезапуска подов или потери кворума. Инструмент просто меняет владельцев объектов, лейблы и аннотации, после чего управление переходит к v1alpha2. Клиенты, обращающиеся к кластеру по DNS, даже не замечают подмены (подробнее процесс описан в migration.md).
Текущая реализация закрывает подавляющее большинство пунктов из дорожной карты оператора etcd. При этом v1alpha2 умеет создавать вещи, которых в официальном плане вообще нет.
Масштабирование в ноль (пауза/возобновление) с сохранением идентичности.
Хранение данных в памяти (tmpfs) с автоматической заменой узлов силами самого оператора.
CEL-валидация на стороне apiserver без лишних компонентов (ни вебхуков, ни сертификатов).
Автоматический PodDisruptionBudget, нацеленный строго на голосующие узлы.
Сабресурс /scale с заполненным status.selector, за счёт которому kubectl scale и VerticalPodAutoscaler.targetRef работают «из коробки».
Сквозной проброс правил планировщика (affinity, topologySpreadConstraints) и слияние additionalMetadata для всех дочерних объектов.
Инструмент для безопасной in-place миграции.
Плагин kubectl-etcd для повседневного обслуживания.
Подробности — на странице CNCF.
Напишите, что думаете, в комментариях. В частности, что принесет отказ от StatefulSet? Управление через Membership api не идет вразрез с классическими туториалами Kubernetes?
Читают сейчас
1 час назад
DeepSeek Harness набрал 37 тысяч звёзд за начальный день: что умеет свежий кодинг-агент
DeepSeek открыли исходный исходник DeepSeek Harness, новой среды для создания и запуска AI-агентов. Инициатива вышел в статусе developer preview под лицензией MIT. Harness можно запустить одной команд

1 час назад
DeepSeek подорожает в разы с 16 августа
На официальном сайте DeepSeek появилась новая сетка тарифов. Также вводятся отдельные цены для пиковых часов: • с 01:00 до 04:00 (UTC) • с 06:00 до 10:00 (UTC) Рост цен составил от 1.5 до 12 раз завис

2 часа назад
OpenAI и Cerebras разогнали GPT-5.6 Sol до 750 токенов в секунду
OpenAI и Cerebras представили Ultrafast, новый режим обработки запросов GPT-5.6 Sol в OpenAI api. Он генерирует до 750 выходных токенов в секунду и работает до 14 раз быстрее Standard processing. Это

2 часа назад
Google выпустила Gemini 3.7 Flash: развитие агентных сценариев
Google DeepMind представила Gemini 3.7 Flash — новую модель семейства Flash, ориентированную на программирование, сложные многошаговые задачи и автоматизацию рабочих процессов. Предыдущая версия, Gemi

4 часа назад
Учёные разглядели скрытые движения внутри странного электронного кристалла
Исследователи из Базельского университета и Мюнхенского технического университета обнаружили новый способ изучения совместного движения электронов внутри одной из самых трудноуловимых форм материи — к