【问题标题】:what are the Kubernetes modules directly communicating with etcd与 etcd 直接通信的 Kubernetes 模块是什么
【发布时间】:2019-11-05 22:35:29
【问题描述】:

我试图了解 kubernetes 模块是如何与 etcd 交互的。我知道 Kubernetes 模块本身是无状态的,它们将状态保存在 etcd 中。但是当谈到模块如何与 etcd 交互时,我感到很困惑。我在这方面看到了相互矛盾的文本,有人说所有 etcd 交互都是通过 apiserver 发生的,而另一些人说所有模块都与 etcd 交互。

我正在寻找更改 etcd 端点和重新启动集成点的可能性,以便它们可以使用新的 etcd 实例。 我没有时间去查看代码来理解这部分,所以希望这里的人可以帮助我。

【问题讨论】:

  • 问题到底是什么?

标签: kubernetes google-kubernetes-engine kubernetes-ingress etcd project-calico


【解决方案1】:

所有 kubernetes 组件,如 kubelet、kubeproxy、调度程序、控制器等,都通过 API 服务器与 etcd 交互。他们不直接与 etcd 对话。

如果你改变了 etcd 端点,那么同样应该在 api 服务器配置中更新。

【讨论】:

  • 所以 ApiServer 是唯一直接与 etcd 对话的组件。你知道法兰绒/印花布吗?他们是否直接与 etcd 交互?还有一个问题——我的实际要求是将整个 kube 主服务器(基于单个主服务器)迁移到另一台服务器。我正在考虑在不同的(备用)主机上进行 etcd 备份和恢复。你认为这行得通吗?有什么陷阱吗?
【解决方案2】:

如果一个 Kubernetes 组件想要与 etcd 通信,它必须知道 etcd 的端点。

如果你检查这些组件的spec config,你会发现正确的答案:只有api-server直接与etcd对话。

【讨论】:

  • 所以 ApiServer 是唯一直接与 etcd 对话的组件。你知道法兰绒/印花布吗?他们是否直接与 etcd 交互?还有一个问题——我的实际要求是将整个 kube 主服务器(基于单个主服务器)迁移到另一台服务器。我正在考虑在不同的(备用)主机上进行 etcd 备份和恢复。你认为这行得通吗?有什么陷阱吗?
  • flannel 只是使用 etcd 来存储配置,但是使用 configmap 作为配置没有 etcd 是可以的。 calico 使用 etcd 存储一些导入通信信息,所以需要 etcd。
  • 单主迁移难。为了使一切正常,您应该在主节点上backup and restore etcd data。我认为需要保留 nodeIP 和 nodeName。
  • 感谢您的链接!这正是我的想法。我们有一个特殊情况,想在 HA 活动/备用 master 中设置 k8s。我们的系统不是高波动性系统。因此,我正在探索在 master 上进行 etcd 备份并在切换时恢复到备用状态以更改备用状态以查看是否可以保持正在运行的 pod 完整的可能性。
猜你喜欢
  • 2016-12-30
  • 2010-10-25
  • 1970-01-01
  • 1970-01-01
  • 2016-05-16
  • 2020-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多