etcd is a distributed key-value store that uses the Raft consensus algorithm to manage a highly-available replicated store, it is used as a software component for software such as CoreOS Container Linux or Kubernetes and for many organizations such as wikipedia
Latency is an important metric as Raft is only as fast as the slowest machine in the majority.
Since etcd’s consensus protocol depends on persistently storing metadata to a log, a majority of etcd cluster members must write every request down to disk
Beside the configuration management, etcd also provides service discovery by allowing deployed applications to announce themselves and the services they offer. Communication with etcd is performed through an exposed REST-based API, which internally uses JSON on top of HTTP; the API may be used directly (through curl or wget, for example), or indirectly through
A simple use case is storing database connection details or feature flags in etcd as key-value pairs.
Basic etcd Operation
Adding a new member to the cluster
To add a new server called conf1001.example.com to our cluster, using the etcdctl tool:
- Next line is broken down artificially for ease of reading
TCP Ports 2379 for client communication and on port 2380 for server-to-server communication needs to be open 
kubeadm, kubelet, CKAD, KOPS, Cloud services, Helm, changelog, Kubernetes RBAC, Rancher
- Debian SID package: https://packages.debian.org/sid/etcd-server
- Homepage: https://github.com/etcd-io/etcd
- Databases: Berkeley DB, Redis, etcd, leveldb, RocksDB (MyRocks), Infinispan