We will require at least a three-node etcd cluster in order for it to be able to support itself in case one node fails. Because etcd uses a distributed census algorithm called Raft, odd-numbered clusters are recommended. This is because, in order for an action to be allowed, more than 50% of the members of the cluster have to agree on it. In a scenario with a two-node cluster, for example, if one of the nodes fails, the other node's vote is only 50% of the cluster, and therefore, the cluster loses quorum. Now, when we have a three-node cluster, a single node failure represents only a 33.33% vote loss and the two remaining nodes' votes still 66.66% for the action to be allowed.
For etcd, we can choose from two deployment models for our cluster. We can either run it on the same node as our kube-apiserver, or we can have a separate set of clusters running our key-value store. Either way, this will not change how etcd reaches quorum, so you will still have to install etcd in odd numbers across your control-plane manager nodes.
For a Kubernetes use case, etcd won't consume lots of compute resources such as CPU or memory. Although etcd does aggressively cache key-value data and uses most of its memory-tracking watchers, two cores and 8 GB of RAM will be more than enough.
When it comes to the disk, this is where you need to be more critical. The etcd cluster relies heavily on disk latency, because of the way the consensus protocol persistently stores metadata in the log. Every member of the etcd cluster has to store every request, and any major spike in latency can trigger a cluster leader election, which will cause instability for the cluster. A hard disk drive (HDD) for etcd is out of the question unless you are running 15k RPM disks in a Raid 0 disk to squeeze the highest performance possible out of a magnetic drive. A solid state drive (SSD) is the way to go and, with extremely low latency and higher input/output operations per second (IOPS), they are the perfect candidate to host your key-value store. Thankfully, all major cloud providers offer SSD solutions to satisfy this need.