{{Short description|Distributed key-value database}} {{lowercase}} {{Infobox software | title = etcd | logo = {{Dark mode switch|250px|250px|logo}} | released = {{Start date and age|2015|Jan|28}}<ref name="coreOs2015" /> | programming language = Go | latest release version = {{wikidata|property|preferred|references|edit|P348|P548=Q2804309}} | latest release date = {{Start date and age|{{wikidata|qualifier|preferred|single|P348|P548=Q2804309|P577}}|df=yes}} | service_name = <code>etcd</code> | genre = Key–value database | license = Apache License 2.0 }}
'''etcd''' is a key-value database commonly deployed with distributed systems.<ref>{{Cite book |last=Dobies |first=Jason |url=https://www.oreilly.com/library/view/kubernetes-operators/9781492048039/ |title=Kubernetes Operators |last2=Wood |first2=Joshua |publisher=O'Reilly Media}}</ref> The software is used by Kubernetes.<ref name="awsBlog2020" /> It is written in the Go programming language and published under the Apache License 2.0.
== History == etcd was originally developed as part of the CoreOS project, it was first announced in June of 2013.<ref name="K8S2018" /> It was later donated to the Cloud Native Computing Foundation (CNCF).<ref name=":0">{{Cite book |last=Burns |first=Brendan |title=Designing distributed systems: patterns and paradigms for scalable, reliable services, using Kubernetes |date=2024 |publisher=O'Reilly |isbn=978-1-0981-5635-0 |edition=Second |location=Sebastopol}}</ref> It became a CNCF incubating project in December 2018, and graduated in November of 2020.<ref name="awsBlog2020">{{cite news |title=etcd gets ready to graduate {{!}} AWS Open Source Blog |url=https://aws.amazon.com/blogs/opensource/etcd-gets-ready-to-graduate/ |access-date=2 December 2025 |work=AWS Blog |date=17 November 2020}}</ref><ref name="CNCF2020">{{cite news |title=Cloud Native Computing Foundation Announces etcd Graduation |url=https://www.cncf.io/announcements/2020/11/24/cloud-native-computing-foundation-announces-etcd-graduation/ |access-date=2 December 2025 |work=CNCF |date=24 November 2020}}</ref> At the time, the maintainer team consisted of 10 members, including: Amazon, Google Cloud, IBM, Alibaba, and Red Hat.<ref name="CNCF2020" /> {{As of|2018}}, all 32 of the CFNFs Kubernetes compliant distributions and platforms used etcd as their datastore.<ref name="K8S2018" />
According to a 2024 report by the CNCF, the project had over 3300 contributors and at least 450 contributing companies.<ref name="CNCF2024">{{cite news |title=etcd Project Journey Report |url=https://www.cncf.io/reports/etcd-project-journey-report/ |access-date=3 December 2025 |work=CNCF |date=25 September 2024}}</ref>
The first stable version of etcd, v2.0.0, was released on January 28, 2015.<ref name="coreOs2015">{{cite news |title=etcd 2.0 Release - First Major Stable Release |url=https://coreos.com/blog/etcd-2.0-release-first-major-stable-release/ |access-date=2 December 2025 |work=CoreOS |date=28 Jan 2015 |archive-url=https://web.archive.org/web/20160304042106/https://coreos.com/blog/etcd-2.0-release-first-major-stable-release/ |archive-date=4 Mar 2016 |url-status=dead}}</ref><ref name="K8S2018">{{cite news |last1=Lee |first1=Gyuho |last2=Betz |first2=Joe |title=etcd: Current status and future roadmap |url=https://kubernetes.io/blog/2018/12/11/etcd-current-status-and-future-roadmap/ |access-date=2 December 2025 |work=Kubernetes |date=11 December 2018 |language=en}}</ref> v3.0.0 was released on June 30, 2016.<ref>{{cite news |title=Release v3.0.0 · etcd-io/etcd |url=https://github.com/etcd-io/etcd/releases/tag/v3.0.0 |access-date=3 December 2025 |work=GitHub |date=Jun 30, 2016 |language=en}}</ref>
== Name ==
The name "etcd" is derived from the Unix convention of storing system configuration files in the <code>/etc</code> directory, which applies to a single system, etcd stores configurations for a distributed system, hence the appended "d" standing for "distributed".<ref>{{cite web |title=What Is etcd? |url=https://www.ibm.com/think/topics/etcd |website=IBM |access-date=3 December 2025 |language=en |date=1 October 2021}}</ref><ref>{{cite web |title=etcd versus other key-value stores |url=https://etcd.io/docs/v3.6/learning/why/ |website=etcd |access-date=3 December 2025 |language=en}}</ref>
== Architecture == The software consists of three executables:<ref name=":0" />
* <code>etcd</code> * <code>etcdctl</code> * <code>etcdutl</code>
On particular database entries, locks can be set to prevent writing by other entities while it is being used.<ref name=":0" /> It uses the raft consensus algorithm.<ref name="CNCF2020" /><ref name="awsBlog2020" />
Etcd was initially inspired by Chubby, a distributed lock manager developed Google in 2006, as well as Apache ZooKeeper.<ref>{{cite web |title=Google Research Publication: Chubby Distributed Lock Service |url=https://research.google.com/archive/chubby.html |website=research.google.com |access-date=2 December 2025}}</ref><ref name="datacenterknowledge2014">{{cite news |title=etcd: the Not-so-Secret Sauce in Google’s Kubernetes and Pivotal’s Cloud Foundry |url=https://www.datacenterknowledge.com/cloud/etcd-the-not-so-secret-sauce-in-google-s-kubernetes-and-pivotal-s-cloud-foundry |access-date=2 December 2025 |work=datacenterknowledge |date=16 Jul 2014 |language=en}}</ref><ref name="infoq2020">{{cite news |title=Distributed Key-Value Store etcd Graduates at CNCF |url=https://www.infoq.com/news/2020/11/etcd-cncf-graduation/ |access-date=2 December 2025 |work=InfoQ |date=29 Nov 2020 |language=en}}</ref><ref name="K8S2020">{{cite news |title=Kubernetes Podcast from Google: Episode 95 - etcd, with Xiang Li |url=https://kubernetespodcast.com/episode/095-etcd/ |access-date=2 December 2025 |work=kubernetespodcast.com |date=17 Mar 2020}}</ref>
==Features==
It supports TLS/SSL encryption, exposes a client-facing gRPC API,<ref name="CNCF2020" /> and supports multiversion concurrency control,<ref name="CNCF2018">{{cite news |title=CNCF to host etcd |url=https://www.cncf.io/blog/2018/12/11/cncf-to-host-etcd/ |access-date=3 December 2025 |work=CNCF |date=11 December 2018}}</ref> and runtime cluster membership reconfiguration.<ref name="CNCF2018" /><ref>{{cite web |title=Runtime reconfiguration |url=https://etcd.io/docs/v3.5/op-guide/runtime-configuration/ |website=etcd |access-date=3 December 2025 |language=en}}</ref>
The official IANA assigned ports for etcd are TCP 2379/2380.<ref name="coreOs2015" /><ref>{{cite web |title=Service Name and Transport Protocol Port Number Registry |url=https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?search=etcd |website=IANA |access-date=3 December 2025}}</ref>
== Users ==
Etcd is used to store cluster data by default for most Kubernetes implementations,<ref name="K8S2018" /><ref name="awsBlog2020" /> like AWS EKS.<ref name="awsBlog2023">{{cite news |title=Explore etcd Defragmentation in Amazon EKS {{!}} Containers |url=https://aws.amazon.com/blogs/containers/explore-etcd-defragmentation-in-amazon-eks/ |access-date=3 December 2025 |work=AWS Blogs |date=25 September 2023}}</ref> One notable exception being Google Kubernetes Engine, whose control-plane datastore was migrated from etcd to a Spanner-based store in 2024, while preserving etcd compatibility.<ref name="GCBlog2024">{{cite news |title=Google Kubernetes Engine supports 65,000-node clusters |url=https://cloud.google.com/blog/products/containers-kubernetes/gke-65k-nodes-and-counting |access-date=3 December 2025 |work=Google Cloud Blog |date=14 Nov 2024}}</ref>
Kubernetes also depends on the etcd API to communicate with its datastore, meaning that all storage backends used by it are required to support the etcd API.<ref name="GCBlog2024" /><ref>{{cite web |title=How etcd works with and without Kubernetes |url=https://learnkube.com/etcd-kubernetes |website=LearnKube |access-date=3 December 2025 |language=en}}</ref>
== See also ==
== References == {{Reflist}}
== External links ==
* {{Official website|etcd.io}}
Category:Software using the Apache license Category:Key-value databases Category:Free software programmed in Go