Etcd

28

Etcd is a consistent distributed key-value store. It is designed to hold small amounts of data that can fit entirely in memory, and is a reliable way to store data that needs to be accessed by distributed systems or a cluster of machines.

Kubernetes uses etcd as a backing store for all cluster data.

Stuff you wanna know:

  1. etcd is a leader-based distributed system.
  2. Keeping etcd clusters stable is critical to the stability of Kubernetes clusters.
  3. Operating etcd with limited resources is suitable only for testing purposes. or durability and high availability, run etcd as a multi-node cluster in production and back it up periodically. A five-member cluster is recommended in production.
  4. You can configure an etcd cluster either by static member information or by dynamic discovery.
  5. Access to etcd is equivalent to root permission in the cluster so ideally only the API server should have access to it.
  6. etcd cluster achieves high availability by tolerating minor member failures.
  7. To improve the overall health of the cluster, replace failed members as soon as you can.
  8. etcd supports built-in snapshot.
  9. Scaling up etcd clusters increases availability by trading off performance. Scaling does not increase cluster performance nor capability.
  10. etcd supports restoring from snapshots that are taken from an etcd process of the major.minor version.
  11. If your Kubernetes cluster uses etcd as its backing store, make sure you have a back up plan for those data.
  12. Setting up a cluster with external etcd nodes is similar to the procedure used for stacked etcd with the exception that you should setup etcd first, and you should pass the etcd information in the kubeadm config file.
  13. You will need an odd number of cluster numbers. An etcd cluster needs a majority of nodes, a quorum, to agree on updates to the cluster state.

More stuff: