CLI и библиотека Go для управления изменениями схемы БД с помощью версионируемых SQL-файлов или Go-функций.
etcd-io/etcd
Распределённое надёжное key-value хранилище для критически важных данных распределённых систем на основе консенсуса Raft с gRPC API.
- Звёзды
- 52,401
- Форки
- 10,541
- Открытые issues
- 391
- Последний коммит
- 20 часов назад
Что это?
etcd — распределённое key-value хранилище, написанное на Go. Оно реплицирует данные между участниками кластера с помощью алгоритма консенсуса Raft, поэтому кластер остаётся доступным и согласованным при сбоях отдельных участников. Клиенты работают с ним через gRPC API. В проект также входит etcdctl — CLI-клиент для чтения и записи ключей.
etcd предназначен для хранения небольших фрагментов критически важных данных координации, например конфигурации и метаданных сервисов, а не больших объёмов данных. Поддерживаются автоматическая настройка TLS и опциональная аутентификация клиентов по сертификатам. Участники кластера обмениваются данными через порт 2380, а клиенты по умолчанию подключаются через порт 2379.
etcd широко используется как хранилище для Kubernetes и применяется вместе с другими проектами для распределённых систем. В репозитории есть настройка локального кластера из нескольких участников с помощью Procfile и goreman, а также клиентские библиотеки Go для v3 API.
Ключевые возможности
- 01Репликация на основе Raft поддерживает согласованность и доступность кластера при сбоях участников.
- 02Чётко определённый gRPC API для чтения, записи и отслеживания изменений ключей.
- 03Автоматическая настройка TLS и опциональная аутентификация клиентов по сертификатам.
- 04CLI-клиент etcdctl для работы с кластером.
- 05Клиентские библиотеки Go для v3 API.
- 06Настройка локального кластера из нескольких участников с помощью Procfile и goreman.
Сценарии использования
- Хранение состояния и конфигурации кластера для control plane Kubernetes.
- Обнаружение сервисов и координация распределённых приложений.
- Согласованное хранение небольших критически важных метаданных на нескольких серверах.
- Изучение и локальное тестирование распределённых систем на основе Raft.
Быстрый старт
- 1
Скачайте предварительно собранный бинарный файл релиза со страницы релизов
- 2
Запустите односоставный сервер etcd
/tmp/etcd-download-test/etcd - 3
Задайте ключ с помощью etcdctl
etcdctl put mykey "this is awesome" - 4
Получите ключ с помощью etcdctl
etcdctl get mykey
Что важно знать
- Для запуска локального кластера из нескольких участников необходимо установить goreman и использовать Procfile из репозитория.
- Ветка main может быть нестабильной или работать с ошибками, поэтому в production используйте релизы с тегами.
Темы
Частые вопросы
- Что такое etcd?
- Распределённое надёжное key-value хранилище для критически важных данных распределённых систем на основе консенсуса Raft с gRPC API. etcd — распределённое key-value хранилище, написанное на Go. Оно реплицирует данные между участниками кластера с помощью алгоритма консенсуса Raft, поэтому кластер остаётся доступным и согласованным при сбоях отдельных участников. Клиенты работают с ним через gRPC API. В проект также входит etcdctl — CLI-клиент для чтения и записи ключей.
- etcd можно использовать бесплатно? Какая у него лицензия?
- etcd распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- etcd всё ещё поддерживается?
- Активно поддерживается. Последний коммит в etcd — 19 окт. 2026 г..
- Для чего можно использовать etcd?
- Хранение состояния и конфигурации кластера для control plane Kubernetes. Обнаружение сервисов и координация распределённых приложений. Согласованное хранение небольших критически важных метаданных на нескольких серверах. Изучение и локальное тестирование распределённых систем на основе Raft.
- Как установить etcd?
- Скачайте предварительно собранный бинарный файл релиза со страницы релизов Запустите односоставный сервер etcd: /tmp/etcd-download-test/etcd Задайте ключ с помощью etcdctl: etcdctl put mykey "this is awesome" Получите ключ с помощью etcdctl: etcdctl get mykey
- Где скачать etcd?
- Исходный код и инструкции по установке — на GitHub: https://github.com/etcd-io/etcd
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Распределённый SQLite-сервер без лидера: принимает записи на любом узле и поддерживает протокол MySQL.
Совместимый с Redis и Valkey внутрипамятный сервер «ключ—значение» на Rust со встроенным полнотекстовым и векторным поиском.
Trivy — сканер безопасности с открытым исходным кодом, который выявляет уязвимости, ошибки конфигурации, секреты и данные SBOM в контейнерах, файловых системах, Git-репозиториях, образах VM и Kubernetes.
Helm — пакетный менеджер для Kubernetes: он устанавливает приложения, упакованные в переиспользуемые Charts, и управляет ими.
AX — это open-source декларативный оркестратор для запуска большого числа изолированных задач автономных агентов в Kubernetes-кластере.