美文网首页
kubernetes和etcd对应版本,API版本

kubernetes和etcd对应版本,API版本

作者: 前浪浪奔浪流 | 来源:发表于2022-01-12 15:23 被阅读0次

这两天研究etcd发现个神逻辑,etcd Version: 3.1.0-rc.0+git 操作如下:

1、V3接口写入kv值 foo:beautyGirl

2、命令行下 V2接口对key(foo)写入新值

ETCDCTL_API=2 ./etcdctl --endpoints http://127.0.0.1:12379 set foo bbbb

3、命令行下 V3接口查询key(foo)

ETCDCTL_API=3 ./etcdctl --endpoints http://127.0.0.1:12379 get foo

结果是beautyGirl

结论:同一个KEY可以存两份值,就是说V2 V3接口使用的是不同的存储,V2 V3接口不能互相访问


etcd v3
在 Kubernetes 1.6 中,缺省的存储后端从 etcd v2 升级到了 v3。这一工作从 1.3 的发布周期就开始了。为什么花了这么长的时间呢?

第一个稳定的支持 v3 API 的 etcd 发布于 2016 年 6 月 30 日。
新 API 是和 Kubernetes 团队合作设计的,以满足 Kubenretes 的功能和伸缩性需求。
几乎在 etcd v3 发布的同时,就完成了 Kubernetes 的集成——事实上,CoreOS 就是使用 Kubernetes 作为 etcd v3 API 的概念验证来使用的。
我们有很多做出这一变化的理由,下面列举一些最重要的:

从 v2 到 v3 的不向后兼容的升级,是一个巨大的变化,这是一个艰难的决定。我们在九月份发现,如果我们继续使用 etcd v2 的话,是无法负载 5000 节点的集群规模的。etcd v2 中的 watch 实现是一个主要障碍。在 5000 节点规模的集群中,我们每秒需要向同一个 watcher 发送至少 500 个 watch 事件,这在 v2 中是不可能的。

在有了升级到 etcd v3 的动机之后,我们开始进行测试,过程中发现了一些问题。除了 Kubernetes 中出了一些小 Bug 之外,我们还向 etcd v3 的 watch 实现提出了更高的性能要求(etcd v2 中我们遇到的主要性能瓶颈)。这导致了 etcd 3.0.10 的补丁发布。
做出这一变化之后,我们确信新的 Kubernetes 集群能够使用 etcd v3。但是还有迁移现有集群的问题。为了自动实现迁移过程,对 CoreOS 的 etcd 升级工具进行了详尽的测试,并且做出了回滚方案。
最终我们确信这一方案是可靠的。

数据格式切换为 protobuf
在 Kubernetes 1.3 中,我们在 Kubernetes 中启用了 protobufs 作为组件通讯的数据格式(作为 JSON 的补充)。这给我们带来巨大的性能提升。

虽说技术上我们已经做好了准备,但我们还在 etcd 存储中使用了 JSON,这一变更的延迟,直接原因就是 etcd v3 的迁移。因为在 etcd v2 中我们无法使用二进制格式存储(只能用 base 64 编码来勉强实现),而在 etcd v3 中就可以了。所以迁移到 etcd v3 能够避免一些不必要的数据转换,最终我们决定等待 etcd v3 的迁移完成后,才切换到 protobufs。

etcd集群数据迁移至新集群
http://t.zoukankan.com/guigujun-p-14188012.html

http://www.iigrowing.cn/?p=6411
etcd v2 备份恢复方法 (可选恢复称为 v3 版本格式数据)
https://blog.csdn.net/signmem/article/details/121124492
搭建etcd 3.4.15集群(详细教程,包括选举过程、数据备份和恢复)
https://blog.csdn.net/xzk9381/article/details/116533333
k8s集群etcd数据目录迁移操作指南
https://blog.csdn.net/weixin_46755536/article/details/117164758
etcd v2 数据迁移至 v3 格式的 etcd 3.5 版本
https://blog.csdn.net/signmem/article/details/121127433
etcd版本之v3
https://blog.csdn.net/weixin_43809223/article/details/108090576
etcd数据存储及数据多版本控制实现逻辑
https://blog.csdn.net/zhangxm_qz/article/details/121314551
etcd v2 v3 api http协议调用 curl版本问题 postman的使用总结
https://blog.csdn.net/wangsenling/article/details/113615204
Etcd V2与V3存储差异
https://blog.csdn.net/shuxnhs/article/details/109440352

相关文章

网友评论

      本文标题:kubernetes和etcd对应版本,API版本

      本文链接:https://www.haomeiwen.com/subject/kgywcrtx.html