From cd27726042c3e0433554c572b5fa11c0f6ad13d0 Mon Sep 17 00:00:00 2001 From: Amshuman K R Date: Wed, 11 Nov 2020 10:30:33 +0530 Subject: [PATCH] Proposal to support multi-node etcd clusters --- docs/proposals/multi-node/README.md | 623 ++++++++++++++++++ ...d-backup-restore-work-flows-life-cycle.txt | 32 + .../etcd-member-initialization-sequence.txt | 38 ++ ...d-backup-restore-work-flows-life-cycle.png | Bin 0 -> 61959 bytes .../etcd-member-initialization-sequence.png | Bin 0 -> 176591 bytes .../multi-node/images/multinodeetcd.png | Bin 0 -> 64739 bytes .../proposals/multi-node/multinodeetcd.drawio | 1 + 7 files changed, 694 insertions(+) create mode 100644 docs/proposals/multi-node/README.md create mode 100644 docs/proposals/multi-node/etcd-backup-restore-work-flows-life-cycle.txt create mode 100644 docs/proposals/multi-node/etcd-member-initialization-sequence.txt create mode 100644 docs/proposals/multi-node/images/etcd-backup-restore-work-flows-life-cycle.png create mode 100644 docs/proposals/multi-node/images/etcd-member-initialization-sequence.png create mode 100644 docs/proposals/multi-node/images/multinodeetcd.png create mode 100644 docs/proposals/multi-node/multinodeetcd.drawio diff --git a/docs/proposals/multi-node/README.md b/docs/proposals/multi-node/README.md new file mode 100644 index 000000000..c0c86b0ce --- /dev/null +++ b/docs/proposals/multi-node/README.md @@ -0,0 +1,623 @@ +# Multi-node etcd cluster instances via etcd-druid + +This document proposes an approach (along with some alternatives) to support provisioning and management of multi-node etcd cluster instances via [etcd-druid](https://github.com/gardener/etcd-druid) and [etcd-backup-restore](https://github.com/gardener/etcd-backup-restore). + +## Content + +- [Multi-node etcd cluster instances via etcd-druid](#multi-node-etcd-cluster-instances-via-etcd-druid) + - [Content](#content) + - [Goal](#goal) + - [Background and Motivation](#background-and-motivation) + - [Single-node etcd cluster](#single-node-etcd-cluster) + - [Multi-node etcd-cluster](#multi-node-etcd-cluster) + - [Dynamic multi-node etcd cluster](#dynamic-multi-node-etcd-cluster) + - [Prior Art](#prior-art) + - [ETCD Operator from CoreOS](#etcd-operator-from-coreos) + - [etcdadm from kubernetes-sigs](#etcdadm-from-kubernetes-sigs) + - [Etcd Cluster Operator from Improbable-Engineering](#etcd-cluster-operator-from-improbable-engineering) + - [General Approach to ETCD Cluster Management](#general-approach-to-etcd-cluster-management) + - [Bootstrapping](#bootstrapping) + - [Assumptions](#assumptions) + - [Adding a new member to an etcd cluster](#adding-a-new-member-to-an-etcd-cluster) + - [Note](#note) + - [Alternative](#alternative) + - [Removing an existing member from an etcd cluster](#removing-an-existing-member-from-an-etcd-cluster) + - [Restarting an existing member of an etcd cluster](#restarting-an-existing-member-of-an-etcd-cluster) + - [Recovering an etcd cluster from failure of majority of members](#recovering-an-etcd-cluster-from-failure-of-majority-of-members) + - [Kubernetes Context](#kubernetes-context) + - [Alternative](#alternative-1) + - [ETCD Configuration](#etcd-configuration) + - [Alternative](#alternative-2) + - [Data Persistence](#data-persistence) + - [Persistent](#persistent) + - [Ephemeral](#ephemeral) + - [In-memory](#in-memory) + - [Health Check](#health-check) + - [Cutting off client requests on backup failure](#cutting-off-client-requests-on-backup-failure) + - [Manipulating Client Service podSelector](#manipulating-client-service-podselector) + - [Alternative](#alternative-3) + - [Status](#status) + - [Note](#note-1) + - [Alternative](#alternative-4) + - [Decision table for etcd-druid based on the status](#decision-table-for-etcd-druid-based-on-the-status) + - [Decision table for etcd-backup-restore during initialization](#decision-table-for-etcd-backup-restore-during-initialization) + - [Backup](#backup) + - [Leading ETCD main container’s sidecar is the backup leader](#leading-etcd-main-containers-sidecar-is-the-backup-leader) + - [Independent leader election between backup-restore sidecars](#independent-leader-election-between-backup-restore-sidecars) + - [History Compaction](#history-compaction) + - [Defragmentation](#defragmentation) + - [Work-flows in etcd-backup-restore](#work-flows-in-etcd-backup-restore) + - [High Availability](#high-availability) + - [Zonal Cluster - Single Availability Zone](#zonal-cluster---single-availability-zone) + - [Alternative](#alternative-5) + - [Regional Cluster - Multiple Availability Zones](#regional-cluster---multiple-availability-zones) + - [Alternative](#alternative-6) + - [PodDisruptionBudget](#poddisruptionbudget) + - [Rolling updates to etcd members](#rolling-updates-to-etcd-members) + - [Follow Up](#follow-up) + - [Shoot Control-Plane Migration](#shoot-control-plane-migration) + - [Performance impact of multi-node etcd clusters](#performance-impact-of-multi-node-etcd-clusters) + - [Metrics, Dashboards and Alerts](#metrics-dashboards-and-alerts) + - [Costing](#costing) + - [Future Work](#future-work) + - [Gardener Ring](#gardener-ring) + - [Optimization of recovery from non-quorate cluster with some member containing valid data](#optimization-of-recovery-from-non-quorate-cluster-with-some-member-containing-valid-data) + - [Optimization of rolling updates to unhealthy etcd clusters](#optimization-of-rolling-updates-to-unhealthy-etcd-clusters) + +## Goal + +- Enhance etcd-druid and etcd-backup-restore to support provisioning and management of multi-node etcd cluster instances within a single Kubernetes cluster. +- The etcd CRD interface should be simple to use. It should preferably work with just setting the `spec.replicas` field to the desired value and should not require any more configuration in the CRD than currently required for the single-node etcd instances. The `spec.replicas` field is part of the [`scale` sub-resource](https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#scale-subresource) [implementation](https://github.com/gardener/etcd-druid/blob/eaf04a2d0e6c7a4f2c8c220182b7a141aabfc70b/api/v1alpha1/etcd_types.go#L299) in `Etcd` CRD. +- The single-node and multi-node scenarios must be automatically identified and managed by `etcd-druid` and `etcd-backup-restore`. +- The etcd clusters (single-node or multi-node) managed by `etcd-druid` and `etcd-backup-restore` must automatically recover from failures (even quorum loss) and disaster (e.g. etcd member persistence/data loss) as much as possible. +- It must be possible to dynamically scale an etcd cluster horizontally (even between single-node and multi-node scenarios) by simply scaling the `Etcd` scale sub-resource. +- It must be possible to (optionally) schedule the individual members of an etcd clusters on different nodes or even infrastructure availability zones (within the hosting Kubernetes cluster). + +Though this proposal tries to cover most aspects related to single-node and multi-node etcd clusters, there are some more points that are not goals for this document but are still in the scope of either etcd-druid/etcd-backup-restore and/or gardener. +In such cases, a high-level description of how they can be [addressed in the future](#future-work) are mentioned at the end of the document. + +## Background and Motivation + +### Single-node etcd cluster + +At present, `etcd-druid` supports only single-node etcd cluster instances. +The advantages of this approach are given below. + +- The problem domain is smaller. +There are no leader election and quorum related issues to be handled. +It is simpler to setup and manage a single-node etcd cluster. +- Single-node etcd clusters instances have [less request latency]((https://etcd.io/docs/v2/admin_guide/#optimal-cluster-size)) than multi-node etcd clusters because there is no requirement to replicate the changes to the other members before committing the changes. +- `etcd-druid` provisions etcd cluster instances as pods (actually as `statefulsets`) in a Kubernetes cluster and Kubernetes is quick (<`20s`) to restart container/pods if they go down. +- Also, `etcd-druid` is currently only used by gardener to provision etcd clusters to act as back-ends for Kubernetes control-planes and Kubernetes control-plane components (`kube-apiserver`, `kubelet`, `kube-controller-manager`, `kube-scheduler` etc.) can tolerate etcd going down and recover when it comes back up. +- Single-node etcd clusters incur less cost (CPU, memory and storage) +- It is easy to cut-off client requests if backups fail by using [`readinessProbe` on the `etcd-backup-restore` healthz endpoint](https://github.com/gardener/etcd-druid/blob/eaf04a2d0e6c7a4f2c8c220182b7a141aabfc70b/charts/etcd/templates/etcd-statefulset.yaml#L54-L62) to minimize the gap between the latest revision and the backup revision. + +The disadvantages of using single-node etcd clusters are given below. + +- The [database verification](https://github.com/gardener/etcd-backup-restore/blob/master/doc/proposals/design.md#workflow) step by `etcd-backup-restore` can introduce additional delays whenever etcd container/pod restarts (in total ~`20-25s`). +This can be much longer if a database restoration is required. +Especially, if there are incremental snapshots that need to be replayed (this can be mitigated by [compacting the incremental snapshots in the background](https://github.com/gardener/etcd-druid/issues/88)). +- Kubernetes control-plane components can go into `CrashloopBackoff` if etcd is down for some time. This is mitigated by the [dependency-watchdog](https://github.com/gardener/gardener/blob/9e4a809008fb122a6d02045adc08b9c98b5cd564/charts/seed-bootstrap/charts/dependency-watchdog/templates/endpoint-configmap.yaml#L29-L41). +But Kubernetes control-plane components require a lot of resources and create a lot of load on the etcd cluster and the apiserver when they come out of `CrashloopBackoff`. +Especially, in medium or large sized clusters (> `20` nodes). +- Maintenance operations such as updates to etcd (and updates to `etcd-druid` of `etcd-backup-restore`), rolling updates to the nodes of the underlying Kubernetes cluster and vertical scaling of etcd pods are disruptive because they cause etcd pods to be restarted. +The vertical scaling of etcd pods is somewhat mitigated during scale down by doing it only during the target clusters' [maintenance window](https://github.com/gardener/gardener/blob/86aa30dfd095f7960ae50a81d2cee27c0d18408b/charts/seed-controlplane/charts/etcd/templates/etcd-hvpa.yaml#L53). +But scale up is still disruptive. +- We currently use some form of elastic storage (via `persistentvolumeclaims`) for storing which have some upper-bounds on the I/O latency and throughput. This can be potentially be a problem for large clusters (> `220` nodes). +Also, some cloud providers (e.g. Azure) take a long time to attach/detach volumes to and from machines which increases the down time to the Kubernetes components that depend on etcd. +It is difficult to use ephemeral/local storage (to achieve better latency/throughput as well as to circumvent volume attachment/detachment) for single-node etcd cluster instances. + +### Multi-node etcd-cluster + +The advantages of introducing support for multi-node etcd clusters via `etcd-druid` are below. +- Multi-node etcd cluster is highly-available. It can tolerate disruption to individual etcd pods as long as the quorum is not lost (i.e. more than half the etcd member pods are healthy and ready). +- Maintenance operations such as updates to etcd (and updates to `etcd-druid` of `etcd-backup-restore`), rolling updates to the nodes of the underlying Kubernetes cluster and vertical scaling of etcd pods can be done non-disruptively by [respecting `poddisruptionbudgets`](https://kubernetes.io/docs/concepts/workloads/pods/disruptions/) for the various multi-node etcd cluster instances hosted on that cluster. +- Kubernetes control-plane components do not see any etcd cluster downtime unless quorum is lost (which is expected to be lot less frequent than current frequency of etcd container/pod restarts). +- We can consider using ephemeral/local storage for multi-node etcd cluster instances because individual member restarts can afford to take time to restore from backup before (re)joining the etcd cluster because the remaining members serve the requests in the meantime. +- High-availability across availability zones is also possible by specifying (anti)affinity for the etcd pods (possibly via [`kupid`](https://github.com/gardener/kupid)). + +Some disadvantages of using multi-node etcd clusters due to which it might still be desirable, in some cases, to continue to use single-node etcd cluster instances in the gardener context are given below. +- Multi-node etcd cluster instances are more complex to manage. +The problem domain is larger including the following. + - Leader election + - Quorum loss + - Managing rolling changes + - Backups to be taken from only the leading member. + - More complex to cut-off client requests if backups fail to minimize the gap between the latest revision and the backup revision is under control. +- Multi-node etcd cluster instances incur more cost (CPU, memory and storage). + +### Dynamic multi-node etcd cluster + +Though it is [not part of this proposal](#non-goal), it is conceivable to convert a single-node etcd cluster into a multi-node etcd cluster temporarily to perform some disruptive operation (etcd, `etcd-backup-restore` or `etcd-druid` updates, etcd cluster vertical scaling and perhaps even node rollout) and convert it back to a single-node etcd cluster once the disruptive operation has been completed. This will necessarily still involve a down-time because scaling from a single-node etcd cluster to a three-node etcd cluster will involve etcd pod restarts, it is still probable that it can be manages with a shorter down time than we see at present for single-node etcd clusters (on the other hand, converting a three-node etcd cluster to five node etcd cluster can be non-disruptive). + +This is _definitely not_ to argue in favour of such a dynamic approach in all cases (eventually, if/when dynamic multi-node etcd clusters are supported). On the contrary, it makes sense to make use of _static_ (fixed in size) multi-node etcd clusters for production scenarios because of the high-availability. + +## Prior Art + +### ETCD Operator from CoreOS + +> [etcd operator](https://github.com/coreos/etcd-operator#etcd-operator) +> +> [Project status: archived](https://github.com/coreos/etcd-operator#project-status-archived) +> +> This project is no longer actively developed or maintained. The project exists here for historical reference. If you are interested in the future of the project and taking over stewardship, please contact etcd-dev@googlegroups.com. + +### etcdadm from kubernetes-sigs +> [etcdadm](https://github.com/kubernetes-sigs/etcdadm#etcdadm) is a command-line tool for operating an etcd cluster. It makes it easy to create a new cluster, add a member to, or remove a member from an existing cluster. Its user experience is inspired by kubeadm. + +It is a tool more tailored for manual command-line based management of etcd clusters with no API's. +It also makes no assumptions about the underlying platform on which the etcd clusters are provisioned and hence, doesn't leverage any capabilities of Kubernetes. + +### Etcd Cluster Operator from Improbable-Engineering +> [Etcd Cluster Operator](https://github.com/improbable-eng/etcd-cluster-operator) +> +> Etcd Cluster Operator is an Operator for automating the creation and management of etcd inside of Kubernetes. It provides a custom resource definition (CRD) based API to define etcd clusters with Kubernetes resources, and enable management with native Kubernetes tooling._ + +Out of the 3 alternatives listed above this one seems to be the only possible viable alternative. +Parts of its design/implementations are similar to some of the approaches mentioned in this proposal. However, we still don't propose to use it as - +1. The project is still in early phase and is not mature enough to be consumed as is in productive scenarios of ours. +2. The resotration part is completely different which makes it difficult to adopt as-is and requries lot of re-work with the current restoration semantics with etcd-backup-restore making the usage counter-productive. + +## General Approach to ETCD Cluster Management + +### Bootstrapping + +There are three ways to bootstrap an etcd cluster are [static](https://etcd.io/docs/v3.4.0/op-guide/clustering/#static), [etcd discovery](https://etcd.io/docs/v3.4.0/op-guide/clustering/#etcd-discovery) and [DNS discovery](https://etcd.io/docs/v3.4.0/op-guide/clustering/#dns-discovery). Out of these, the static way is the simplest (and probably faster to bootstrap the cluster) and has the least external dependencies. Hence, it is preferred in this proposal. But it requires that the initial (during bootstrapping) etcd cluster size (number of members) is already known before bootstrapping and that all of the members are already addressable (DNS,IP,TLS etc.). Such information needs to be passed to the individual members during startup using the following static configuration. + +- ETCD_INITIAL_CLUSTER + - The list of peer URLs including all the members. This must be the same as the advertised peer URLs configuration. This can also be passed as `initial-cluster` flag to etcd. +- ETCD_INITIAL_CLUSTER_STATE + - This should be set to `new` while bootstrapping an etcd cluster. +- ETCD_INITIAL_CLUSTER_TOKEN + - This is a token to distinguish the etcd cluster from any other etcd cluster in the same network. + +#### Assumptions + +- ETCD_INITIAL_CLUSTER can use DNS instead of IP addresses. We need to verify this by deleting a pod (as against scaling down the statefulset) to ensure that the pod IP changes and see if the recreated pod (by the statefulset controller) re-joins the cluster automatically. +- DNS for the individual members is known or computable. This is true in the case of etcd-druid setting up an etcd cluster using a single statefulset as mentioned above. But it may not necessarily be true in other cases (multiple statefulset per etcd cluster or deployments instead of statefulsets or in the case of etcd cluster with members distributed across more than one Kubernetes cluster. + +### Adding a new member to an etcd cluster + +A [new member can be added](https://etcd.io/docs/v3.4.0/op-guide/runtime-configuration/#add-a-new-member) to an existing etcd cluster instance using the following steps. + +1. If the latest backup snapshot exists, restore the member's etcd data to the latest backup snapshot. This can reduce the load on the leader to bring the new member up to date when it joins the cluster. +1. The cluster is informed that a new member is being added using the [`MemberAdd` API](https://github.com/etcd-io/etcd/blob/6e800b9b0161ef874784fc6c679325acd67e2452/client/v3/cluster.go#L40) including information like the member name and its advertised peer URLs. +1. The new etcd member is then started with `ETCD_INITIAL_CLUSTER_STATE=existing` apart from other required configuration. + +This proposal recommends this approach. + +#### Note + +- If there are incremental snapshots (taken by `etcd-backup-restore`), they cannot be applied because that requires the member to be started in isolation without joining the cluster which is not possible. +This is acceptable if the amount of incremental snapshots are managed to be relatively small. +This adds one more reason to increase the priority of the issue of [incremental snapshot compaction](https://github.com/gardener/etcd-druid/issues/88). +- There is a time window between the `MemberAdd` call and the new member has joined the cluster and is up to date where the cluster is [vulnerable to leader elections which could be disruptive](https://etcd.io/docs/v3.3.12/learning/learner/#background). + +#### Alternative + +With `v3.4`, the new [raft learner approach](https://etcd.io/docs/v3.3.12/learning/learner/#raft-learner) can be used to mitigate some of the possible disruptions mentioned [above](#note). +Then the steps will be as follows. + +1. If the latest backup snapshot exists, restore the member's etcd data to the latest backup snapshot. This can reduce the load on the leader to bring the new member up to date when it joins the cluster. +1. The cluster is informed that a new member is being added using the [`MemberAddAsLearner` API](https://github.com/etcd-io/etcd/blob/6e800b9b0161ef874784fc6c679325acd67e2452/client/v3/cluster.go#L43) including information like the member name and its advertised peer URLs. +1. The new etcd member is then started with `ETCD_INITIAL_CLUSTER_STATE=existing` apart from other required configuration. +1. Once the new member (learner) is up to date, it can be promoted to a full voting member by using the [`MemberPromote` API](https://github.com/etcd-io/etcd/blob/6e800b9b0161ef874784fc6c679325acd67e2452/client/v3/cluster.go#L52) + +This approach is new and involves more steps and is not recommended in this proposal. +It can be considered in future enhancements. + +### Removing an existing member from an etcd cluster + +If a member of an etcd cluster becomes unhealthy, it must be explicitly removed from the etcd cluster, as soon as possible. +This can be done by using the [`MemberRemove` API](https://github.com/etcd-io/etcd/blob/6e800b9b0161ef874784fc6c679325acd67e2452/client/v3/cluster.go#L46). +This ensures that only healthy members participate as voting members. + +### Restarting an existing member of an etcd cluster + +If the existing member of an etcd cluster restarts and retains an uncorrupted data directory after the restart, then it can simply re-join the cluster as an existing member without any API calls or configuration changes. +This is because the relevant metadata (including member ID and cluster ID) are [maintained in the write ahead logs](https://etcd.io/docs/v2/admin_guide/#lifecycle). +However, if it doesn't retain an uncorrupted data directory after the restart, then it must first be [removed](#removing-an-existing-member-from-an-etcd-cluster) and [added](#adding-a-new-member-to-an-etcd-cluster) as a new member. + +### Recovering an etcd cluster from failure of majority of members + +If a majority of members of an etcd cluster fail but if they retain their uncorrupted data directory then they can be simply restarted and they will re-form the existing etcd cluster when they come up. +However, if they do not retain their uncorrupted data directory, then the etcd cluster must be [recovered from latest snapshot in the backup](https://etcd.io/docs/v3.4.0/op-guide/recovery/#restoring-a-cluster). +This is very similar to [bootstrapping](#bootstrapping) with the additional initial step of restoring the latest snapshot in each of the members. +However, the same [limitation](#note) about incremental snapshots, as in the case of adding a new member, applies here. +But unlike in the case of [adding a new member](#adding-a-new-member-to-an-etcd-cluster), this is unacceptable in the case of etcd cluster recovery. +Hence, if incremental snapshots are required to be applied, the etcd cluster must be [recovered](https://etcd.io/docs/v3.4.0/op-guide/runtime-configuration/#restart-cluster-from-majority-failure) in the following steps. + +1. Restore a new single-member cluster using the latest snapshot. +1. Apply incremental snapshots on the single-member cluster. +1. Take a full snapshot which can now be used while adding the remaining members. +1. [Add](#adding-a-new-member-to-an-etcd-cluster) new members using the latest snapshot created in the step above. + +## Kubernetes Context + +- Users will provision an etcd cluster in a Kubernetes cluster by creating an etcd CRD resource instance. +- A multi-node etcd cluster is indicated if the `spec.replicas` field is set to any value greater than 1. The etcd-druid will add validation to ensure that the `spec.replicas` value is an odd number according to the requirements of etcd. +- The etcd-druid controller will provision a statefulset with the etcd main container and the etcd-backup-restore sidecar container. It will pass on the `spec.replicas` field from the etcd resource to the statefulset. It will also supply the right pre-computed configuration to both the containers. +- The statefulset controller will create the pods based on the pod template in the statefulset spec and these individual pods will be the members that form the etcd cluster. + +![Component diagram](images/multinodeetcd.png) + +This approach makes it possible to satisfy the [assumption](#assumption) that the DNS for the individual members of the etcd cluster must be known/computable. +This can be achieved by using a `headless` service (along with the statefulset) for each etcd cluster instance. +Then we can address individual pods/etcd members via the predictable DNS name of `-{0|1|2|3|…|n}.` from within the Kubernetes namespace (or from outside the Kubernetes namespace by appending `..svc. suffix)`. +This would be good enough for etcd-druid to compute the above configurations automatically based on the `spec.replicas` in the etcd resource. + +This proposal recommends this approach. + +#### Alternative + +One statefulset is used for each member (instead of one statefulset for all members). +While this approach gives a flexibility to have different pod specifications for the individual members, it makes managing the individual members (e.g. rolling updates) more complicated. +Hence, this approach is not recommended. + +## ETCD Configuration + +As mentioned in the [general approach section](#general-approach-to-etcd-cluster-management), there are differences in the configuration that needs to be passed to individual members of an etcd cluster in different scenarios such as [bootstrapping](#bootstrapping), [adding](#adding-a-new-member-to-an-etcd-cluster) a new member, [removing](#removing-an-existing-member-from-an-etcd-cluster) a member, [restarting](#restarting-an-existing-member-of-an-etcd-cluster) an existing member etc. +Managing such differences in configuration for individual pods of a statefulset is tricky in the [recommended approach](#kubernetes-context) of using a single statefulset to manage all the member pods of an etcd cluster. +This is because statefulset uses the same pod template for all its pods. + +The recommendation is for `etcd-druid` to provision the base configuration template in a `ConfigMap` which is passed to all the pods via the pod template in the `StatefulSet`. +The `initialization` flow of `etcd-backup-restore` (which is invoked every time the etcd container is (re)started) is then enhanced to generate the customized etcd configuration for the corresponding member pod (in a shared _volume_ between etcd and the backup-restore containers) based on the supplied template configuration. +This will require that `etcd-backup-restore` will have to have a mechanism to detect which scenario listed [above](#etcd-configuration) applies during any given member container/pod restart. + +### Alternative + +As mentioned [above](#alternative-1), one statefulset is used for each member of the etcd cluster. +Then different configuration (generated directly by `etcd-druid`) can be passed in the pod templates of the different statefulsets. +Though this approach is advantageous in the context of managing the different configuration, it is not recommended in this proposal because it makes the rest of the management (e.g. rolling updates) more complicated. + +## Data Persistence + +The type of persistence used to store etcd data (including the member ID and cluster ID) has an impact on the steps that are needed to be taken when the member pods or containers ([minority](#removing-an-existing-member-from-an-etcd-cluster) of them or [majority](#restarting-an-existing-member-of-an-etcd-cluster)) need to be recovered. + +### Persistent + +Like the single-node case, `persistentvolumes` can be used to persist ETCD data for all the member pods. The individual member pods then get their own `persistentvolumes`. +The advantage is that individual members retain their member ID across pod restarts and even pod deletion/recreation across Kubernetes nodes. +This means that member pods that crash (or are unhealthy) can be [restarted](#restarting-an-existing-member-of-an-etcd-cluster) automatically (by configuring `livenessProbe`) and they will re-join the etcd cluster using their existing member ID without any need for explicit etcd cluster management). + +The disadvantages of this approach are as follows. +- The number of persistentvolumes increases linearly with the cluster size which is a cost-related concern. +- Network-mounted persistentvolumes might eventually become a performance bottleneck under heavy load for a latency-sensitive component like ETCD. +- [Volume attach/detach issues](#single-node-etcd-cluster) when associated with etcd cluster instances cause downtimes to the target shoot clusters that are backed by those etcd cluster instances. + +### Ephemeral + +Ephemeral persistence can be achieved in Kubernetes by using either [`emptyDir`](https://kubernetes.io/docs/concepts/storage/volumes/#emptydir) volumes or [`local` persistentvolumes](https://kubernetes.io/docs/concepts/storage/volumes/#local) can be used to persist ETCD data. +The advantages of this approach are as follows. + +- Potentially faster disk I/O. +- The unmber of persistent volumes does not increase linearly with the cluster size (at least not technically). +- Issues related volume attachment/detachment can be avoided. + +The main disadvantage of using ephemeral persistence is that the individual members may retain their identity and data across container restarts but not across pod deletion/recreation even across Kubernetes nodes. If the data is lost then the on restart of the member pod, the [older member (represented by the container) has to be removed and a new member has to be added](#restarting-an-existing-member-of-an-etcd-cluster). + +#### In-memory + +In-memory ephemeral persistence can be achieved in Kubernetes by using `emptyDir` with [`medium: Memory`](https://kubernetes.io/docs/concepts/storage/volumes/#emptydir). +In this case, a `tmpfs` (RAM-backed file-system) volume will be used. +In addition to the advantages of [ephemeral persistence](#ephemeral), this approach can achieve the fastest possible _disk I/O_. +Similarly, in addition to the disadvantages of [ephemeral persistence](#ephemeral), in-memory persistence has the following additional disadvantages. + +- More memory required for the individual member pods. +- Individual members may not at all retain their data and identity across container restarts let alone across pod restarts/deletion/recreation even across Kubernetes nodes. +I.e. every time an etcd container restarts, [the old member (represented by the container) will have to be removed and a new member has to be added](#restarting-an-existing-member-of-an-etcd-cluster). + +## Health Check + +The etcd main container and the etcd-backup-restore sidecar containers will be configured with livenessProbe and readinessProbe which will indicate the health of the containers and effectively the corresponding ETCD cluster member pod. + +### Cutting off client requests on backup failure + +At present, in the single-node ETCD instances, etcd-druid configures the readinessProbe of the etcd main container to probe the healthz endpoint of the etcd-backup-restore sidecar which considers the status of the latest backup upload in addition to the regular checks about etcd and the side car being up and healthy. This has the effect of setting the etcd main container (and hence the etcd pod) as not ready if the latest backup upload failed. This results in the endpoints controller to remove the pod IP address from the endpoints list for the service which eventually cuts off ingress traffic coming into the etcd pod via the etcd client service. The rationale for this is to fail early when the backup upload fails rather than continuing to serve requests while the gap between the last backup and the current data increases which might lead to unacceptably large amount of data loss if disaster strikes. + +This approach will not work in the multi-node scenario because we need the individual member pods to be able to talk to each other to maintain the cluster quorum when backup upload fails but need to cut off only client ingress traffic. + +In such a case, we will need two different services. +- peer + - To be used for peer communication. This could be a `headless` service. +- client + - To be used for client communication. This could be a normal `ClusterIP` service like it is in the single-node case. + +Also, the etcd main container readinessProbe of the member pods will then have to restrict themselves to just the etcd and the sidecar health and readiness and not consider the latest backup upload health which can be done in a different way as follows. + +#### Manipulating Client Service podSelector + +Based on the health check criteria already considered by the etcd-backup-restore sidecar as well as the health of the last backup upload, if the health either the etcd cluster or the last backup fails then some component can update the podSelector of the client service to add an additional label (say, unhealthy or disabled) such that the podSelector no longer matches the member pods created by the statefulset. +This will result in the client ingress traffic being cut off. +The peer service is left unmodified so that peer communication is always possible. + +This proposal recommends to enhance `etcd-backup-restore` (i.e. the leading `etcd-backup-restore` sidecar that is in charge of taking the backups at the moment) to implement the [above functionality](#manipulating-client-service-podselector). + +This will mean that `etcd-backup-restore` becomes Kubernetes-aware. But there might be reasons for making `etcd-backup-restore` Kubernetes-aware anyway (e.g. to update the `etcd` resource [status](#status) with latest full snapshot details). +This enhancement should be keep `etcd-backup-restore` backward compatible. +I.e. it should be possible to use `etcd-backup-restore` Kubernetes-unaware as before this proposal. +This is possible either by auto-detecting the existence of kubeconfig or by an explicit command-line flag (such as `--enable-client-service-updates` which can be defaulted to `false` for backward compatibility). + +##### Alternative + +The alternative is for `etcd-druid` to implement the [above functionality](#manipulating-client-service-podselector). + +But `etcd-druid` is centrally deployed in the host Kubernetes cluster and cannot scale well horizontally. +So, it can potentially be a bottleneck if it is involved in regular health check mechanism for all the etcd clusters it manages. +Also, the recommended approach above is more robust because it can work even if `etcd-druid` is down when the backup upload of a particular etcd cluster fails. + +## Status + +It is desirable (for the `etcd-druid` and landscape administrators/operators) to maintain/expose status of the etcd cluster instances in the `status` sub-resource of the `Etcd` CRD. +The proposed structure for maintaining the status is as shown in the example below. + +```yaml +apiVersion: druid.gardener.cloud/v1alpha1 +kind: Etcd +metadata: + name: etcd-main +spec: + replicas: 3 + ... +... +status: + ... + replicas: 3 + ... + members: + - name: etcd-main-0 # member pod name + id: 272e204152 # member Id + role: Member # Member|Learner + status: Ready # Ready|NotReady|Unknown + lastHeartbeatTime: "2020-11-10T12:48:01Z" + lastTransitionTime: "2020-11-10T12:48:01Z" + reason: HeartbeatSucceeded # HeartbeatSucceeded|HeartbeatFailed|HeartbeatGracePeriodExceeded|UnknownGracePeriodExceeded|PodNotReady + - name: etcd-main-1 # member pod name + id: 272e204152 # member Id + role: Member # Member|Learner + status: Ready # Ready|NotReady|Unknown + lastHeartbeatTime: "2020-11-10T12:48:01Z" + lastTransitionTime: "2020-11-10T12:48:01Z" + reason: HeartbeatSucceeded # HeartbeatSucceeded|HeartbeatFailed|HeartbeatGracePeriodExceeded|UnknownGracePeriodExceeded|PodNotReady +``` + +This proposal recommendations to enhance `etcd-backup-restore` so that the _leading_ backup-restore sidecar container maintains the above status information in the `Etcd` status sub-resource. +This will mean that `etcd-backup-restore` becomes Kubernetes-aware. But there are other reasons for making `etcd-backup-restore` Kubernetes-aware anyway (e.g. to [cut off client requests](#cutting-off-client-requests-on-backup-failure)). +This enhancement should keep `etcd-backup-restore` backward compatible. +But it should be possible to use `etcd-backup-restore` Kubernetes-unaware as before this proposal. This is possible either by auto-detecting the existence of kubeconfig or by an explicit command-line flag (such as `--enable-etcd-status-updates` which can be defaulted to `false` for backward compatibility). + +### Note + +With approach [above](#status), members can be marked with `status: Ready` only by their `etcd-backup-restore` sidecar container. +However, they can be marked with `status: NotReady` either by their `etcd-backup-restore` sidecar container (with `reason: HeartbeatFailed`) or by `etcd-druid` (as explained [below](#decision-table-for-etcd-druid-based-on-the-status)). + +### Alternative + +The alternative is for `etcd-druid` to maintain the status in the `Etcd` status sub-resource. +But `etcd-druid` is centrally deployed in the host Kubernetes cluster and cannot scale well horizontally. +So, it can potentially be a bottleneck if it is involved in regular health check mechanism for all the etcd clusters it manages. +Also, the recommended approach above is more robust because it can work even if `etcd-druid` is down when the backup upload of a particular etcd cluster fails. + +## Decision table for etcd-druid based on the status + +The following decision table describes the various criteria `etcd-druid` takes in to consideration to detect different etcd cluster management scenarios and the corresponding reconciliation actions it must take. +The general principle is to detect the scenario and take the minimum action to move the cluster along the path good health. +The path from any one scenario to a state of good health will typically involve going through multiple reconciliation actions which probably take the cluster through many other cluter management scenarios. +Especially, it is proposed that individual members auto-heal if where possible even in the case of the failure of a majority of members of the etcd cluster and that `etcd-druid` takes action only if the auto-healing doesn't happen for a configured period. + +############################ ETCD Cluster Management Scenario ############################ | Current Cluster Size | Desired Cluster Size | `StatefulSet` spec `replicas` | `StatefulSet` status `readyReplicas` | `Etcd` status members | `Etcd` status `Ready` members | `Etcd` status `NotReady` members with `lastTransitionTime > notReadyGracePeriod` | `Etcd` status `Ready` or `NotReady` members with `lastHeartbeatTime > heartbeatGracePeriod` | `Etcd` status `Unknown` members with `lastTransitionTime > unknownGracePeriod` | ######################################## Action ################################ +--- | --: | --: | --: | --: | --: | --: | --: | --: | --: | --- +Pink of health | `n` | `n` | `n` | `n` | `n` | `n` | `0` | `0` | `0` | Nothing to do +`f` members (minority) are `NotReady`. The cluster is still quorate. | `n` | N/A | N/A | N/A | `n` | `n - f` | `f < n/2` | N/A | 0 | Delete the `f` `NotReady` member pods to force restart of the pods if they do not automatically restart via failed `livenessProbe`. The expectation is that they will either re-join the cluster as an existing member or remove themselves and join a new members on restart of the container or pod. +`f` members (majority) are `NotReady`. The cluster is no longer quorate. | `n` | N/A | N/A | N/A | `n` | `n - f` | `f > n/2` | N/A | N/A | Scale down the `StatefulSet` to `replicas: 0`. Ensure that all member pods are deleted. Ensure that all the members are removed from `Etcd` status. Recover the cluster from loss of quorum as discussed [here](#recovering-an-etcd-cluster-from-failure-of-majority-of-members). +Health of `h` members unknown because they have not updated their status for a while | `n` | N/A | N/A | N/A | N/A | N/A | N/A | `h` | N/A | Mark the `h` members as `Unknown` in `Etcd` status with `reason: HeartbeatGracePeriodExceeded` +Health of `u` members unknown for more than `unknownGracePeriod` | `n` | N/A | N/A | N/A | N/A | N/A | N/A | N/A | `u` | Mark the `u` members as `NotReady` in `Etcd` status with `reason: UnknownGracePeriodExceeded` +`n - s` member pods are not `Ready` but not necessarily had the chance the update their status themselves | `n` | N/A | `n` | `s < n` | N/A | N/A | N/A | N/A | N/A | Mark the `n - s` members as `NotReady` in `Etcd` status with `reason: PodNotReady` +The cluster of size `n` is in pink of health and the cluster size being increased to `d > n` | `n` | `d > n` | N/A | `n` | `n` | `n` | `0` | `0` | `0` | Add `d - n` new members by scaling the `StatefulSet` to `replicas: d`. The rest of the `StatefulSet` spec need not be updated until the next cluster bootstrapping (alternatively, the rest of the `StatefulSet` spec can be updated pro-actively once the new members join the cluster. This will trigger a rolling update). +The cluster of size `n` is in pink of health and the cluster size is being decreased to `d < n` | `n` | `d < n` | `n` | `n` | `n` | `n` | `0` | `0` | `0` | Remove `d - n` existing members (numbered `d`, `d + 1` ... `n`) by scaling the `StatefulSet` to `replicas: d`. The `StatefulSet` spec need not be updated until the next cluster bootstrapping (alternatively, the `StatefulSet` spec can be updated pro-actively once the superfluous members exit the cluster. This will trigger a rolling update). +`s - n` additional member pods are `Ready` but are not required because the cluster size is smaller | `n` | N/A | `s > n` | `s` | N/A | N/A | N/A | N/A | N/A | Remove `s - n` existing members (numbered `n`, `n + 1` ... `s`) by scaling the StatefulSet to `replicas: n`. The `StatefulSet` spec need not be updated until the next cluster bootstrapping (alternatively, the rest of the `StatefulSet` spec can be updated pro-actively once the superfluous members exit the cluster. This will trigger a rolling update). +Superfluous member entries in `Etcd` status | `n` | N/A | `n` | `n` | `m > n` | N/A | N/A | N/A | N/A | Remove the superfluous `m - n` member entries from `Etcd` status (numbered `n`, `n+1` ... `m`) by scaling the `StatefulSet` to `replicas: n`. The rest of the `StatefulSet` spec need not be updated until the next cluster bootstrapping (alternatively, the rest of the `StatefulSet` spec can be updated pro-actively once the superfluous members exit the cluster. This will trigger a rolling update). + +## Decision table for etcd-backup-restore during initialization + +As discussed above, the initialization sequence of `etcd-backup-restore` in a member pod needs to [generate suitable etcd configuration](#etcd-configuration) for its etcd container. +It also might have to handle the etcd database verification and restoration functionality differently in [different](#restarting-an-existing-member-of-an-etcd-cluster) [scenarios](#recovering-an-etcd-cluster-from-failure-of-majority-of-members). + +The initialization sequence itself is proposed to be as follows. +It is an enhancement of the [existing](https://github.com/gardener/etcd-backup-restore/blob/master/doc/proposals/design.md#workflow) initialization sequence. +![etcd member initialization sequence](images/etcd-member-initialization-sequence.png) + +The details of the decisions to be taken during the initialization are given below. + +############################ ETCD Cluster Management Scenario ############################ | Current Cluster Size | `Etcd` status members | `Etcd` status `Ready` members | `Etcd` status contains own member | WAL directory has cluster/ member metadata | Data directory is valid and up-to-date | Backup exists | Backup has incremental snapshots | ############################################## Action ############################################## +--- | --: | --: | --: | :-: | :-: | :-: | :-: | :-: | --- +First member during bootstrap of a fresh etcd cluster | `n` | `0` | `0` | `false` | `false` | `false` | `false` | `false` | Generate etcd configuration with `n` initial cluster peer URLs and initial cluster state `new` and return success. +Additional of a new following member during bootstrap of a fresh etcd cluster | `n` | `m < n` | `m < 0` | `false` | `false` | `false` | `false` | `false` | Generate etcd configuration with `n` initial cluster peer URLs and initial cluster state `new` and return success. +Restart of an existing member of a quorate cluster with valid metadata and data | `n` | `m > n/2` | `r > n/2` | `true` | `true` | `true` | N/A | N/A | Re-use previously generated etcd configuration and return success. +Restart of an existing member of a quorate cluster with valid metadata but without valid data | `n` | `m > n/2` | `r > n/2` | `true` | `true` | `false` | N/A | N/A | [Remove](#removing-an-existing-member-from-an-etcd-cluster) self as a member (old member ID) from the etcd cluster as well as `Etcd` status. [Add](#adding-a-new-member-to-an-etcd-cluster) self as a new member of the etcd cluster as well as in the `Etcd` status. If backups do not exist, create an empty data and WAL directory. If backups exist, restore only the latest full snapshot (please see [here](#recovering-an-etcd-cluster-from-failure-of-majority-of-members) for the reason for not restoring incremental snapshots). Generate etcd configuration with `n` initial cluster peer URLs and initial cluster state `existing` and return success. +Restart of an existing member of a quorate cluster without valid metadata | `n` | `m > n/2` | `r > n/2` | `true` | `false` | N/A | N/A | N/A | [Remove](#removing-an-existing-member-from-an-etcd-cluster) self as a member (old member ID) from the etcd cluster as well as `Etcd` status. [Add](#adding-a-new-member-to-an-etcd-cluster) self as a new member of the etcd cluster as well as in the `Etcd` status. If backups do not exist, create an empty data and WAL directory. If backups exist, restore only the latest full snapshot (please see [here](#recovering-an-etcd-cluster-from-failure-of-majority-of-members) for the reason for not restoring incremental snapshots). Generate etcd configuration with `n` initial cluster peer URLs and initial cluster state `existing` and return success. +Restart of an existing member of a non-quorate cluster with valid metadata and data | `n` | `m < n/2` | `r < n/2` | `true` | `true` | `true` | N/A | N/A | Re-use previously generated etcd configuration and return success. +Restart of the first member of a non-quorate cluster without valid data | `n` | `0` | `0` | `false` | N/A | `false` | N/A | N/A | If backups do not exist, create an empty data and WAL directory. If backups exist, restore the latest full snapshot. Start a single-node embedded etcd with initial cluster peer URLs containing only own peer URL and initial cluster state `new`. If incremental snapshots exist, apply them serially (honouring source transactions). Take and upload a full snapshot after incremental snapshots are applied successfully (please see [here](#recovering-an-etcd-cluster-from-failure-of-majority-of-members) for more reasons why). Generate etcd configuration with `n` initial cluster peer URLs and initial cluster state `new` and return success. +Restart of a following member of a non-quorate cluster without valid data | `n` | `1 < m < n` | `1 < r < n` | `false` | N/A | `false` | N/A | N/A | If backups do not exist, create an empty data and WAL directory. If backups exist, restore only the latest full snapshot (please see [here](#recovering-an-etcd-cluster-from-failure-of-majority-of-members) for the reason for not restoring incremental snapshots). Generate etcd configuration with `n` initial cluster peer URLs and initial cluster state `existing` and return success. + +## Backup + +Only one of the etcd-backup-restore sidecars among the members are required to take the backup for a given ETCD cluster. This can be called a `backup leader`. There are two possibilities here. + +### Leading ETCD main container’s sidecar is the backup leader + +The backup-restore sidecar could poll the etcd cluster and/or its own etcd main container to see if it is the leading member in the etcd cluster. +This information can be used by the backup-restore sidecars to decide that sidecar of the leading etcd main container is the backup leader (i.e. responsible to for taking/uploading backups regularly). + +The advantages of this approach are as follows. +- The approach us operationally and conceptually simple. The leading etcd container and backup-restore sidecar are always located in the same pod. +- Network traffic between the backup container and the etcd cluster will always be local. + +The disadvantage is that this approach may not age well in the future if we think about moving the backup-restore container as a separate pod rather than a sidecar container. + +### Independent leader election between backup-restore sidecars + +We could use the etcd `lease` mechanism to perform leader election among the backup-restore sidecars. For example, using something like [`go.etcd.io/etcd/clientv3/concurrency`](https://pkg.go.dev/go.etcd.io/etcd/clientv3/concurrency#Election.Campaign). + +The advantage and disadvanges are pretty much the opposite of the approach [above](#leading-etcd-main-containers-sidecar-is-the-backup-leader). +The advantage being that this approach is that it may age well in the future if we think about moving the backup-restore container as a separate pod rather than a sidecar container. + +The disadvantages are as follows. +- The approach is operationally and conceptually a bit complex. The leading etcd container and backup-restore sidecar might potentially belong to different pods. +- Network traffic between the backup container and the etcd cluster might potentially be across nodes. + +## History Compaction + +This proposal recommends to configure [automatic history compaction](https://etcd.io/docs/v3.2.17/op-guide/maintenance/#history-compaction) on the individual members. + +## Defragmentation + +Defragmentation is already [triggered periodically](https://github.com/gardener/etcd-backup-restore/blob/0dfdd50fbfc5ebc88238be3bc79c3ac3fc242c08/cmd/options.go#L209) by `etcd-backup-restore`. +This proposal recommends to enhance this functionality to be performance only by the [leading](#backup) backup-restore container. +The defragmentation must be performed only when etcd cluster is in full health and must be done in a rolling manner for each members to [avoid disruption](https://etcd.io/docs/v3.2.17/op-guide/maintenance/#defragmentation). +If the etcd cluster is unhealthy when it is time trigger scheduled defragmentation, the defragmentation must be postponed until the cluster becomes healthy. This check must be done before triggering defragmentation for each member. + +## Work-flows in etcd-backup-restore + +There are different work-flows in etcd-backup-restore. +Some existing flows like initialization, scheduled backups and defragmentation have been enhanced or modified. +Some new work-flows like status updates have been introduced. +Some of these work-flows are sensitive to which `etcd-backup-restore` container is [leading](#backup) and some are not. + +The life-cycle of these work-flows is shown below. +![etcd-backup-restore work-flows life-cycle](images/etcd-backup-restore-work-flows-life-cycle.png) +## High Availability + +Considering that high-availability is the primary reason for using a multi-node etcd cluster, it makes sense to distribute the individual member pods of the etcd cluster across different physical nodes. +If the underlying Kubernetes cluster has nodes from multiple availability zones, it makes sense to also distribute the member pods across nodes from different availability zones. + +One possibility to do this is via [`SelectorSpreadPriority`](https://kubernetes.io/docs/reference/scheduling/policies/#priorities) of `kube-scheduler` but this is only [best-effort](https://kubernetes.io/docs/reference/kubernetes-api/labels-annotations-taints/#topologykubernetesiozone) and may not always be enforced strictly. + +It is better to use [pod anti-affinity](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity) to enforce such distribution of member pods. + +### Zonal Cluster - Single Availability Zone + +A zonal cluster is configured to consist of nodes belonging to only a single availability zone in a region of the cloud provider. +In such a case, we can at best distribute the member pods of a multi-node etcd cluster instance only across different nodes in the configured availability zone. + +This can be done by specifying [pod anti-affinity](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity) in the specification of the member pods using [`kubernetes.io/hostname`](https://kubernetes.io/docs/reference/kubernetes-api/labels-annotations-taints/#kubernetes-io-hostname) as the topology key. + +```yaml +apiVersion: apps/v1 +kind: StatefulSet +... +spec: + ... + template: + ... + spec: + ... + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: {} # podSelector that matches the member pods of the given etcd cluster instance + topologyKey: "kubernetes.io/hostname" + ... + ... + ... + +``` + +The recommendation is to keep `etcd-druid` agnostic of such topics related scheduling and cluster-topology and to use [kupid](https://github.com/gardener/kupid) to [orthogonally inject](https://github.com/gardener/kupid#mutating-higher-order-controllers) the desired [pod anti-affinity](https://github.com/gardener/kupid/blob/master/config/samples/cpsp-pod-affinity-anti-affinity.yaml). + +#### Alternative + +Another option is to build the functionality into `etcd-druid` to include the required pod anti-affinity when it provisions the `StatefulSet` that manages the member pods. +While this has the advantage of avoid a dependency on an external component like [kupid](https://github.com/gardener/kupid), the disadvantage is that we might need to address development or testing use-cases where it might be desirable to avoid distributing member pods and schedule then on the as less number of nodes as possible. +Also, as mentioned [below](#regional-cluster---multiple-availability-zones), [kupid](https://github.com/gardener/kupid) can be used to distribute member pods of an etcd cluster instance across nodes in a single availability zone as well as across nodes in multiple availability zones with very minor variation. +This keeps the solution uniform regardless of the topology of the underlying Kubernetes cluster. + +### Regional Cluster - Multiple Availability Zones + +A regional cluster is configured to consist of nodes belonging to multiple availability zones (typically, three) in a region of the cloud provider. +In such a case, we can distribute the member pods of a multi-node etcd cluster instance across nodes belonging to different availability zones. + +This can be done by specifying [pod anti-affinity](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity) in the specification of the member pods using [`topology.kubernetes.io/zone`](https://kubernetes.io/docs/reference/kubernetes-api/labels-annotations-taints/#topologykubernetesiozone) as the topology key. +In Kubernetes clusters using Kubernetes release older than `1.17`, the older (and now deprecated) [`failure-domain.beta.kubernetes.io/zone`](https://kubernetes.io/docs/reference/kubernetes-api/labels-annotations-taints/#failure-domainbetakubernetesiozone) might have to be used as the topology key. + +```yaml +apiVersion: apps/v1 +kind: StatefulSet +... +spec: + ... + template: + ... + spec: + ... + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: {} # podSelector that matches the member pods of the given etcd cluster instance + topologyKey: "topology.kubernetes.io/zone + ... + ... + ... + +``` + +The recommendation is to keep `etcd-druid` agnostic of such topics related scheduling and cluster-topology and to use [kupid](https://github.com/gardener/kupid) to [orthogonally inject](https://github.com/gardener/kupid#mutating-higher-order-controllers) the desired [pod anti-affinity](https://github.com/gardener/kupid/blob/master/config/samples/cpsp-pod-affinity-anti-affinity.yaml). + +#### Alternative + +Another option is to build the functionality into `etcd-druid` to include the required pod anti-affinity when it provisions the `StatefulSet` that manages the member pods. +While this has the advantage of avoid a dependency on an external component like [kupid](https://github.com/gardener/kupid), the disadvantage is that such built-in support necessarily limits what kind of topologies of the underlying cluster will be supported. +Hence, it is better to keep `etcd-druid` altogether agnostic of issues related to scheduling and cluster-topology. + +### PodDisruptionBudget + +This proposal recommends that `etcd-druid` should deploy [`PodDisruptionBudget`](https://kubernetes.io/docs/concepts/workloads/pods/disruptions/#pod-disruption-budgets) (`maxUnavailable` set to `floor(/2)`) for multi-node etcd clusters to ensure that any planned disruptive operations can try and honour the disruption budget to ensure high availability of the etcd cluster. + +## Rolling updates to etcd members + +Any changes to the `Etcd` resource spec that might result in a change to `StatefulSet` spec or otherwise result in a rolling update of member pods should be applied/propagated by `etcd-druid` only when the etcd cluster is fully healthy to reduce the risk of quorum loss during the updates. +If the cluster is unhealthy, `etcd-druid` must restor it to full health before proceeding with the rolling update. +This can be further optimized in the future to handle the cases where rolling updates can still be performed on an etcd cluster that is not fully healthy. + +## Follow Up + +### Shoot Control-Plane Migration + +This proposal adds support for multi-node etcd clusters but it should not have significant impact on [shoot control-plane migration](https://github.com/gardener/gardener/blob/master/docs/proposals/07-shoot-control-plane-migration.md) any more than what already present in the single-node etcd cluster scenario. +But to be sure, this needs to be discussed further. + +### Performance impact of multi-node etcd clusters + +Multi-node etcd clusters incur a cost on [write performance](https://etcd.io/docs/v2/admin_guide/#optimal-cluster-size) as compared to single-node etcd clusters. +This performance impact needs to be measured and documented. + +### Metrics, Dashboards and Alerts + +There already metrics exported by etcd and `etcd-backup-restore` which are visualized in monitoring dashboards and also used in triggering alerts. +These might have hidden assumptions about single-node etcd clusters. +These might need to be enhanced and potentially new metrics, dashboards and alerts configured to cover the multi-node etcd cluster scenario. + +### Costing + +Multi-node etcd clusters will clearly involve higher cost (when compared with single-node etcd clusters) just going by the CPU and memory usage for the additional members. +On top of that, the [different options](#data-persistence) for persistence for etcd data for the members will have different cost implications. +Such cost impact needs to be assessed and documented. + +## Future Work + +### Gardener Ring + +[Gardener Ring](https://github.com/gardener/gardener/issues/233), requires provisioning and management of an etcd cluster with the members distributed across more than one Kubernetes cluster. +his cannot be achieved by etcd-druid alone which has only the view of a single Kubernetes cluster. +An additional component that has the view of all the Kubernetes clusters involved in setting up the gardener ring will be required to achieve this. +However, etcd-druid can be used by such a higher-level component/controller (for example, by supplying the initial cluster configuration) such that individual etcd-druid instances in the individual Kubernetes clusters can manage the corresponding etcd cluster members. + +### Optimization of recovery from non-quorate cluster with some member containing valid data + +It might be possible to optimize the actions during the recovery of a non-quorate cluster where some of the members contain valid data and some other don't. +The optimization involves verifying the data of the valid members to determine the data of which member is the most recent (even considering the latest backup) so that the [full snapshot](#recovering-an-etcd-cluster-from-failure-of-majority-of-members) can be taken from it before recovering the etcd cluster. +Such an optimization can be attempted in the future. + +### Optimization of rolling updates to unhealthy etcd clusters + +As mentioned [above](#rolling-updates-to-etcd-members), optimizations to proceed with rolling updates to unhealthy etcd clusters (without first restoring the cluster to full health) can be pursued in future work. diff --git a/docs/proposals/multi-node/etcd-backup-restore-work-flows-life-cycle.txt b/docs/proposals/multi-node/etcd-backup-restore-work-flows-life-cycle.txt new file mode 100644 index 000000000..20e47c506 --- /dev/null +++ b/docs/proposals/multi-node/etcd-backup-restore-work-flows-life-cycle.txt @@ -0,0 +1,32 @@ +// build: https://sequencediagram.org + +title etcd-backup-restore work-flow life-cycle + + +participant etcd-backup-restore http server (initialize) +participant health checker and staus updater +participant etcd-backup-restore leader elector/detector +participant snapshotter +participant client request disconnector +participant defragmenter + +activate etcd-backup-restore http server (initialize) +activate health checker and staus updater +activate etcd-backup-restore leader elector/detector + +etcd-backup-restore leader elector/detector->etcd-backup-restore leader elector/detector: OnLeaderStart +etcd-backup-restore leader elector/detector->snapshotter: Start +activate snapshotter +etcd-backup-restore leader elector/detector->client request disconnector: Start +activate client request disconnector +etcd-backup-restore leader elector/detector->defragmenter: Start +activate defragmenter + +etcd-backup-restore leader elector/detector->etcd-backup-restore leader elector/detector: OnLeaderStop +OnLeaderStart +etcd-backup-restore leader elector/detector->snapshotter: Stop +deactivate snapshotter +etcd-backup-restore leader elector/detector->client request disconnector: Start +deactivate client request disconnector +etcd-backup-restore leader elector/detector->defragmenter: Stop +deactivate defragmenter diff --git a/docs/proposals/multi-node/etcd-member-initialization-sequence.txt b/docs/proposals/multi-node/etcd-member-initialization-sequence.txt new file mode 100644 index 000000000..fef0ea1db --- /dev/null +++ b/docs/proposals/multi-node/etcd-member-initialization-sequence.txt @@ -0,0 +1,38 @@ +// build: https://sequencediagram.org + +title Etcd Member Initialization + +participant kubelet +participant etcd container bootstrap script +participant etcd-backup-restore sidecar container +database etcd resource +database etcd configuration template +database backup +database etcd client service +participant etcd container etcd + +activate kubelet +activate etcd resource +activate etcd configuration template +activate backup +activate etcd client service +kubelet->etcd container bootstrap script: (re)start +activate etcd container bootstrap script +kubelet->etcd-backup-restore sidecar container: (re)start +activate etcd-backup-restore sidecar container +etcd container bootstrap script->etcd-backup-restore sidecar container:initialize +etcd-backup-restore sidecar container->etcd configuration template: Load +etcd-backup-restore sidecar container->etcd resource: Get Status +etcd-backup-restore sidecar container->etcd client service: List members +etcd-backup-restore sidecar container->backup: Get latest backed up revision +etcd-backup-restore sidecar container->etcd-backup-restore sidecar container: Check if WAL directory contains valid metadata +etcd-backup-restore sidecar container->etcd client service: If necessary, remove old member and add new member +etcd-backup-restore sidecar container->etcd resource: If necessary, remove old member and add new member +etcd-backup-restore sidecar container->etcd-backup-restore sidecar container: Check if data directory contains valid +etcd-backup-restore sidecar container->etcd-backup-restore sidecar container: If necessary restore latest full snapshot from backup +etcd-backup-restore sidecar container->backup: If necessary, fetch latest full snapshot and restore the database from it +etcd-backup-restore sidecar container->backup: If necessary, fetch and apply incremental snapshots on the restored database +etcd-backup-restore sidecar container->backup: If necessary, take a fresh full snapshot and upload +etcd container bootstrap script<--etcd-backup-restore sidecar container: If necessary, generate appropriate etcd configuration (based on the loaded template) and return success. +etcd container bootstrap script->etcd container etcd: start using the generated configuration +activate etcd container etcd diff --git a/docs/proposals/multi-node/images/etcd-backup-restore-work-flows-life-cycle.png b/docs/proposals/multi-node/images/etcd-backup-restore-work-flows-life-cycle.png new file mode 100644 index 0000000000000000000000000000000000000000..029314b3fb08f5e0df0b965c464f3b9c3ac61825 GIT binary patch literal 61959 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 literal 0 HcmV?d00001 diff --git a/docs/proposals/multi-node/images/etcd-member-initialization-sequence.png b/docs/proposals/multi-node/images/etcd-member-initialization-sequence.png new file mode 100644 index 0000000000000000000000000000000000000000..fab13e61aebe910e6735d1cdce6fd2caf2e30bb2 GIT binary patch literal 176591 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

3Lwz1fK0K@&GxkIAJ_m2CA4{Q6z)ZLUPRH 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 literal 0 HcmV?d00001 diff --git a/docs/proposals/multi-node/images/multinodeetcd.png b/docs/proposals/multi-node/images/multinodeetcd.png new file mode 100644 index 0000000000000000000000000000000000000000..163199952866714860f1c8bd708dcf52a965d58f GIT binary patch literal 64739 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 O{>)4)cNH5uhyDk5L^Nsu literal 0 HcmV?d00001 diff --git a/docs/proposals/multi-node/multinodeetcd.drawio b/docs/proposals/multi-node/multinodeetcd.drawio new file mode 100644 index 000000000..9f5a89910 --- /dev/null +++ b/docs/proposals/multi-node/multinodeetcd.drawio @@ -0,0 +1 @@ +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 \ No newline at end of file