【发布时间】:2016-12-30 09:00:28
【问题描述】:
我知道 Kubernetes 有 5 个模块:kube-apiserver, kube-controller-manager, kube-scheduler 在 Master 节点中,kubelet, kube-proxy 在 Minion 节点中。他们如何与 etcd 通信?他们都会在 etcd 中查询或设置数据吗?还是只有一些人这样做?
The docs表示etcd只有kube-apiserver访问:
访问控制:仅授予 kube-apiserver 对 etcd 的读/写访问权限。 您不希望 apiserver 的 etcd 暴露给集群中的每个节点 (或者更糟的是,访问整个互联网),因为访问 etcd 是 相当于集群中的 root。
但谷歌的一些博客和架构图认为 etcd 也可以被其他模块访问,就像 this blog 所说的:
etcd 服务是 Kubernetes 的通信总线 簇。 app-service 将集群状态更改发布到 etcd 数据库以响应命令和查询。 kubelets 读取 etcd 数据库的内容并根据它们检测到的任何更改采取行动。
那么哪个说法是正确的?谢谢!
【问题讨论】:
-
我不是 kubernetes 专家,但据我所知,你有各种与 api server 对话的 compent 和 api server 与 etcd 对话,这样每个节点都无法访问 etcd , { etcd } { api-server }
-
请阅读博客并观看此视频。 ibm.com/cloud/learn/etcd 这将真正让您深入了解 etcd。
标签: kubernetes etcd