【问题标题】:How do Kubernetes modules communicate with etcd?Kubernetes 模块如何与 etcd 通信?
【发布时间】: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


【解决方案1】:

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

还请注意,您链接到的博客文章只有大约 2 年的历史,当时可能是准确的,但您链接到的文档适用于当前版本的 Kubernetes。

【讨论】:

    猜你喜欢
    • 2019-11-05
    • 2018-07-09
    • 1970-01-01
    • 2018-12-22
    • 1970-01-01
    • 1970-01-01
    • 2021-06-25
    • 2018-05-28
    • 2021-01-19
    相关资源
    最近更新 更多