Which etcd APIs are depended /required by Kubernete?

I am interested in the external data storage used by Kubernete. Kubernete is using etcd as its storage backend, but etcd contains tons of APIs and I believe Kubernete does not require all of them.

I know etcd can be deployed on an external cluster without touching the codebase of Kubernete, and that is great.

If I want to develop an alternative to etcd and serve as the storage backend for Kubernete (without changing the code of Kubernete), which etcd APIs should I support to guarantee that the full functionalitiy of Kubernete is not affected? (i.e. The Kubernete API servers cannot feel the replacement of the storage backend)
Is there a list of the key etcd APIs that are depended by Kubernete?

Thanks!

Rancher’s K3s support multiple storage backends. I suggest you to look at how they do this. GitHub - k3s-io/kine: Run Kubernetes on MySQL, Postgres, sqlite, dqlite, not etcd.

1 Like