etcd is notoriously unreliable and one of the biggest problems in k8s.
I didn't know Go just isn't a good language for it, but now that I know I'm no longer surprised at etcd being problematic.
Having maintained multiple etcd clusters for self-managed kubernetes the last few years I disagree with the "problematic" characterization.
Sure it may not be the best fit in a scenario where you want a cluster spanned over the entire globe (thats why GKE uses paxos-based Spanner instead of it) , but even spanned across an entire continent (in europe via glass fiber) it works quite well for me. Its one of the least problematic parts of the stack.
I'm running big k8s cluster and my small ones at home for 8 years, never had an etcd issue.
Could you elaborate?