山河已无恙 舵手
云原生领域优质创作者
博客专家认证
2023-03-12 09:48:50
234 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yf6 2024-10-12
  • 打赏
  • 举报
回复

每个 kube-apiserver 实例与本地的 etcd 节点通信,主要是为了提高性能、简化网络通信、降低延迟,以及减少跨节点通信所带来的潜在问题,在大规模集群中,多个kube-apiserver实例分布在不同的节点上,每个实例只和本机etcd通信也有助于分散负载,避免所有kube-apiserver实例过度依赖单个etcd节点,导致瓶颈或单点故障。此外,Raft协议确保了即使etcd集群中的部分节点故障,只要大多数节点正常运行,集群仍然能维持正常的数据读写。

yf6 2024-10-12
  • 打赏
  • 举报
回复

在 Kubernetes HA 集群中,尽管每个 kube-apiserver 实例连接的是本地的 etcd 节点,但并不是只有 etcd 的 Leader 节点所在的 kube-apiserver 才会处理写入数据的操作。
实际情况下,任何一个 kube-apiserver 都可以与其本地的 etcd 节点通信并发出写入请求。然而,写入数据时,etcd 集群会自动通过 Raft 共识算法将写入请求重定向到当前的 Leader 节点。也就是说,即使当前与 kube-apiserver 连接的 etcd 节点是一个 Follower,它也会将写请求转发给 Leader,确保数据写入正确的一致性。
因此,不论哪个 kube-apiserver 发出写请求,最终都会由 etcd 的 Leader 处理写入操作。而 Follower 节点负责从 Leader 复制日志以保持数据同步。这种机制确保了高可用集群的正常运行和一致性。
总结:
任意 kube-apiserver 都可以发起写入请求。
etcd 集群的 Follower 节点会将写请求转发给 Leader 处理。
最终数据写入由 etcd Leader 节点负责,其他节点同步数据

58,695

社区成员

发帖
与我相关
我的任务
社区描述
Kubernetes起源于古希腊,舵手的意思。谷歌用它命名,不言而喻。社区收录k8s学习开发运维相关博文,欢迎小伙伴积极投稿,可以发帖引流到站内站外博文。路飞说立志要成为海贼王的男人,小伙伴共勉^_^
kubeless 个人社区 北京·房山区
社区管理员
  • 山河已无恙
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧