Top Qs
Timeline
Chat
Perspective

Etcd

Distributed key-value database From Wikipedia, the free encyclopedia

Etcd
Remove ads

etcd is a key-value database commonly deployed with distributed systems.[3] The software is used by Kubernetes.[4] It is written in the Go programming language and published under the Apache License 2.0.

Quick facts Initial release, Stable release ...
Remove ads

History

etcd was originally developed as part of the CoreOS project, it was first announced in June of 2013.[5] It was later donated the project to the Cloud Native Computing Foundation (CNCF).[6] It became a CNCF incubating project in December 2018, and graduated in November of 2020.[4][7] At the time, the maintainer team consisted of 10 members, including: Amazon, Google Cloud, IBM, Alibaba, and Red Hat.[7] As of 2018, all 32 of the CFNFs Kubernetes compliant distributions and platforms used etcd as their datastore.[5]

According to a 2024 report by the CNCF, the project had over 3300 contributers and at least 450 contributing companies.[8]

The first stable version of etcd, v2.0.0, was released on January 28, 2015.[1][5] v3.0.0 was released on June 30, 2016.[9]

Remove ads

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".[10][11]

Architecture

The software consists of three executables:[6]

  • etcd
  • etcdctl
  • etcdutl

On particular database entries, locks can be set to prevent writing by other entities while it is being used.[6] It uses the raft consensus algorithm.[7][4]

Etcd was initially inspired by Chubby, a distributed lock manager developed Google in 2006, as well as Apache ZooKeeper.[12][13][14][15]

Features

It supports TLS/SSL encryption, exposes a client-facing gRPC API,[7] and supports multiversion concurrency control,[16] and runtime cluster membership reconfiguration.[16][17]

The official IANA assigned ports for etcd are TCP 2379/2380.[1][18]

Users

Etcd is used to store cluster data by default for most Kubernetes implementations,[5][4] like AWS EKS.[19] 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.[20]

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.[20][21]

Remove ads

See also

References

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads