Kubernetes模块如何与etcd通信?

Yan*_*Luo 4 etcd kubernetes

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

文档说etcd只能通过kube-apiserver以下方式访问:

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

但谷歌的一些博客和建筑人物认为,etcd也可以通过其他模块访问,就像这篇博客所说:

etcd服务是Kubernetes集群的通信总线.app-service将对etcd数据库的状态更改发布,以响应命令和查询.kubelet读取etcd数据库的内容并对它们检测到的任何更改进行操作.

那说哪个是对的?谢谢!

Rob*_*ley 7

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

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