Software:Etcd
| Template:Dark mode switch | |
| Initial release | January 28, 2015[1] |
|---|---|
| Written in | Go |
| Service name | etcd |
| Type | Key–value database |
| License | Apache License 2.0 |
etcd is a key-value database commonly deployed with distributed systems.[2] The software is used by Kubernetes.[3] 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.[4] It was later donated to the Cloud Native Computing Foundation (CNCF).[5] It became a CNCF incubating project in December 2018, and graduated in November of 2020.[3][6] At the time, the maintainer team consisted of 10 members, including: Amazon, Google Cloud, IBM, Alibaba, and Red Hat.[6] As of 2018[update], all 32 of the CFNFs Kubernetes compliant distributions and platforms used etcd as their datastore.[4]
According to a 2024 report by the CNCF, the project had over 3300 contributors and at least 450 contributing companies.[7]
The first stable version of etcd, v2.0.0, was released on January 28, 2015.[1][4] v3.0.0 was released on June 30, 2016.[8]
Name
The name "etcd" is derived from the Unix convention of storing system configuration files in the /etc directory, which applies to a single system, etcd stores configurations for a distributed system, hence the appended "d" standing for "distributed".[9][10]
Architecture
The software consists of three executables:[5]
etcdetcdctletcdutl
On particular database entries, locks can be set to prevent writing by other entities while it is being used.[5] It uses the raft consensus algorithm.[6][3]
Etcd was initially inspired by Chubby, a distributed lock manager developed Google in 2006, as well as Apache ZooKeeper.[11][12][13][14]
Features
It supports TLS/SSL encryption, exposes a client-facing gRPC API,[6] and supports multiversion concurrency control,[15] and runtime cluster membership reconfiguration.[15][16]
The official IANA assigned ports for etcd are TCP 2379/2380.[1][17]
Users
Etcd is used to store cluster data by default for most Kubernetes implementations,[4][3] like AWS EKS.[18] 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.[19]
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.[19][20]
See also
References
- ↑ 1.0 1.1 1.2 "etcd 2.0 Release - First Major Stable Release". CoreOS. 28 Jan 2015. https://coreos.com/blog/etcd-2.0-release-first-major-stable-release/.
- ↑ Dobies, Jason; Wood, Joshua. Kubernetes Operators. O'Reilly Media. https://www.oreilly.com/library/view/kubernetes-operators/9781492048039/.
- ↑ 3.0 3.1 3.2 3.3 "etcd gets ready to graduate | AWS Open Source Blog". AWS Blog. 17 November 2020. https://aws.amazon.com/blogs/opensource/etcd-gets-ready-to-graduate/.
- ↑ 4.0 4.1 4.2 4.3 Lee, Gyuho; Betz, Joe (11 December 2018). "etcd: Current status and future roadmap" (in en). Kubernetes. https://kubernetes.io/blog/2018/12/11/etcd-current-status-and-future-roadmap/.
- ↑ 5.0 5.1 5.2 Burns, Brendan (2024). Designing distributed systems: patterns and paradigms for scalable, reliable services, using Kubernetes (Second ed.). Sebastopol: O'Reilly. ISBN 978-1-0981-5635-0.
- ↑ 6.0 6.1 6.2 6.3 "Cloud Native Computing Foundation Announces etcd Graduation". CNCF. 24 November 2020. https://www.cncf.io/announcements/2020/11/24/cloud-native-computing-foundation-announces-etcd-graduation/.
- ↑ "etcd Project Journey Report". CNCF. 25 September 2024. https://www.cncf.io/reports/etcd-project-journey-report/.
- ↑ "Release v3.0.0 · etcd-io/etcd" (in en). GitHub. Jun 30, 2016. https://github.com/etcd-io/etcd/releases/tag/v3.0.0.
- ↑ "What Is etcd?" (in en). 1 October 2021. https://www.ibm.com/think/topics/etcd.
- ↑ "etcd versus other key-value stores" (in en). https://etcd.io/docs/v3.6/learning/why/.
- ↑ "Google Research Publication: Chubby Distributed Lock Service". https://research.google.com/archive/chubby.html.
- ↑ "etcd: the Not-so-Secret Sauce in Google’s Kubernetes and Pivotal’s Cloud Foundry" (in en). datacenterknowledge. 16 Jul 2014. https://www.datacenterknowledge.com/cloud/etcd-the-not-so-secret-sauce-in-google-s-kubernetes-and-pivotal-s-cloud-foundry.
- ↑ "Distributed Key-Value Store etcd Graduates at CNCF" (in en). InfoQ. 29 Nov 2020. https://www.infoq.com/news/2020/11/etcd-cncf-graduation/.
- ↑ "Kubernetes Podcast from Google: Episode 95 - etcd, with Xiang Li". kubernetespodcast.com. 17 Mar 2020. https://kubernetespodcast.com/episode/095-etcd/.
- ↑ 15.0 15.1 "CNCF to host etcd". CNCF. 11 December 2018. https://www.cncf.io/blog/2018/12/11/cncf-to-host-etcd/.
- ↑ "Runtime reconfiguration" (in en). https://etcd.io/docs/v3.5/op-guide/runtime-configuration/.
- ↑ "Service Name and Transport Protocol Port Number Registry". https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?search=etcd.
- ↑ "Explore etcd Defragmentation in Amazon EKS | Containers". AWS Blogs. 25 September 2023. https://aws.amazon.com/blogs/containers/explore-etcd-defragmentation-in-amazon-eks/.
- ↑ 19.0 19.1 "Google Kubernetes Engine supports 65,000-node clusters". Google Cloud Blog. 14 Nov 2024. https://cloud.google.com/blog/products/containers-kubernetes/gke-65k-nodes-and-counting.
- ↑ "How etcd works with and without Kubernetes" (in en). https://learnkube.com/etcd-kubernetes.
External links
