




etcd-operator присоединяется к Cozystack с новым API версии 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). Если кластер ставится на паузу, идентификаторы узлов не теряются. Подробное обоснование такой архитектуры можно найти в
Читать на habr.com