为了账号安全,请及时绑定邮箱和手机立即绑定

etcd原理以及基本技术概述铺垫

标签:
Kubernetes

原创内容,转载请注明出处

博主地址:https://aronligithub.github.io/

前言

在部署kubernetes和calico网络的过程中,都需要有一个etcd数据库进行数据记录。这是部署的前置组件。

可以说部署etcd就是踏入使用kubernetes的第一步,那么下面就来了解一下什么是etcd?


etcd的介绍

etcd的官网

作为要了解etcd这个数据库,那么第一步就是要知道从哪里去访问官网,再下一步就是如何从官网中获取自己需要的文档资料

webp

etcd官网的相关信息

etcd的特征

webp

etcd官网特征描述



etcd的技术概述

etcd是基于什么语言编写,通过什么算法保证数据集群同步的呢?

etcd是用Go编写的,它具有出色的跨平台支持,小型二进制文件和背后的优秀社区。etcd机器之间的通信通过Raft一致性算法处理。

etcd的主从集群是怎么形式的呢,例如一主多从,还是多主多从呢?

在etcd的集群中会选举出一位leader,其他etcd服务节点就会成为follower,在此过程其他follower会同步leader的数据。
由于etcd集群必须能够选举出leader才能正常工作,所以部署的服务器数量必须是奇数,例如:
1,3,5,7,9 的etcd节点数量。

如果etcd的节点数量为偶数会怎么样?

如果etcd的节点数量为偶数,例如:2,4,6,8 那么每一个节点都会收到同样的选举票数,就好像我们在班里选举班长一样,同样票数两个人是没法出leader的,谁也不服谁。
那么这时候的结果当然就是etcd的集群无法工作了

那么如果etcd的节点数量为奇数,需要部署多少个节点最合适呢?

在考虑etcd读写效率以及稳定性的情况下,基本可以选型如下:
只有单台或者两台服务器做kubernetes的服务集群,只需要部署一台etcd节点即可;
只有三台或者四台服务器做kubernetes的服务集群,只需要部署三台etcd节点即可;
只有五台或者六台服务器做kubernetes的服务集群,只需要部署五台etcd节点即可;

那么按照上面的公式推导,不就是etcd的节点越多越好?

其实不是越多越好,基本三台和五台服务器作为etcd的节点已经比较稳定的了。

那么如果任性就是要服务器很多呢?会出现什么样的情况?

如果服务器的台数越多,就可能会出现网络抖动,延时、不稳定的情况,具体视机房网络情况;
如果服务器的台数越多,你就需要管理以及维护观察更多的服务器,在修复故障的时候需要注意更多的服务器数量;
另外,因为etcd的集群所有的follower都需要从leader同步完数据之后,leader才能继续写入新的数据,所以如果etcd的节点数量过多,则会导致同步的时间变长、导致leader的写入效率降低

综上所述,部署etcd集群采用1,3,5,7的台数部署是比较合理的了

下一篇章,我就开始演示单台etcd的部署以及ca证书的创建,在之后演示三台的etcd集群部署。

webp

leader会将数据同步给每个follower



作者:DevOps海洋的渔夫
链接:https://www.jianshu.com/p/e52f9204b7a9


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消