Kubernetes模块如何与etcd通信?

时间:2016-08-23 13:34:49

标签: kubernetes etcd

我知道Kubernetes有5个模块:主节点中的kube-apiserver, kube-controller-manager, kube-scheduler和Minion节点中的kubelet, kube-proxy。他们如何与etcd沟通?他们都会在etcd中查询或设置数据吗?或者只有其中一些呢?

The docs表示只能通过kube-apiserver访问etcd:

  

访问控制:仅提供对etcd的kube-apiserver读/写访问权限。   您不希望apiserver的etcd暴露给集群中的每个节点   (或者更糟糕的是,对于整个互联网),因为访问etcd是   相当于群集中的root。

但谷歌的一些博客和建筑人物认为,etcd也可以通过其他模块访问,例如this blog所说的:

  

etcd服务是Kubernetes的通信总线   簇。 app-service将对状态更改的状态更改为etcd   数据库响应命令和查询。 kubelets读了   etcd数据库的内容,并对它们检测到的任何更改采取行动。

哪个说的是对的?谢谢!

1 个答案:

答案 0 :(得分:7)

您链接的文档是正确的 - 只有apiserver直接与etcd通信。其余系统组件通过apiserver与etcd 间接通信

另请注意,您链接到的博客文章只有2年左右,当时可能是准确的,但您链接的文档是针对当前版本的Kubernetes。