为什么我不能用其他数据库替换etcd,例如nosql数据库mongodb?
为什么Kubernetes架构设计不允许人们选择其他存储选项?
自从2014年成为Kubernetes的一部分以来,Etcd社区呈指数增长。有许多贡献成员,包括CoreOS,Google,Redhat,IBM,Cisco,华为等。 Etcd在生产环境中已被AWS,Google Cloud Platform和Azure等大型云提供商成功使用。
Etcd在Kubernetes中的工作是为分布式系统安全地存储关键数据。最著名的是Kubernetes的主要数据存储区,用于存储其配置数据,状态和元数据。由于Kubernetes通常在多台机器的集群上运行,因此它是一个分布式系统,需要像Etcd这样的分布式数据存储。Etcd使跨集群存储数据和监视更改变得容易,从而允许Kubernetes集群中的任何节点读取和写入数据。 Kubernetes使用Etcd的
watch
功能来监视对其系统的actual或desired状态的更改。如果它们不同,Kubernetes会进行更改以调和这两个状态。从存储在Etcd中的数据检索kubectl命令的每次读取,所做的任何更改(适用kubectl)都会在Etcd中创建或更新条目,每次崩溃都会触发etcd中的值更改。