设为首页 收藏本站
查看: 1607|回复: 0

[经验分享] etcd官方推荐的硬件配置

[复制链接]

尚未签到

发表于 2019-1-31 12:04:05 | 显示全部楼层 |阅读模式
  推荐的硬件配置

      etcd通常在开发或测试的时候用很少的资源就可以了,比如说使用普通的笔记本或者是廉价的云主机就可以,但是在生产环境上,还是需要按推荐的硬件配置进行部署,虽然这不是必须的,但是这样做可以增加集群的健壮性。一如既往,在上生产环境之前,需要先进行负载模拟测试。
  CPUs
      很少有etcd部署需要大量的CPU资源。典型的etcd部署节点,需要2-4个CPU就可以顺利运行。负载很高的etcd集群,比如上千客户端或者每秒超过上万请求,倾向于CPU绑定,可以直接从内存获取请求。即便这样重的负载,通常需要8-16个CPU就可以了。
  内存
      etcd占用的内存相对比较小,但是etcd性能仍然取决于是否拥有足够的内存。一个etcd服务器会积极的缓存key-value数据和大部分的跟踪watcher。通常8GB内存就够了,对于负载高的集群,比如有上千watcher和超过百万的keys,相应的就需要16GB-64GB内存。
  磁盘
      高速磁盘是保证etcd部署性能和稳定性的关键因素。
      慢磁盘会增加etcd的请求延时,潜在影响集群的稳定性。因为etcd一致性协议依赖于元数据写入持久化日志,并且要求集群大多数成员将请求写入磁盘。此外,etcd还会到磁盘上增量检查集群的状态,从而可以截断日志。如果这些写操作花费太长的时间,心跳就可能会超时,触发选举操作,从而破坏集群的稳定性。
      etcd对磁盘写入延时非常敏感。通常稳定达到50 IOPS(比如:一个7200转的磁盘)是必须的,对于负载很高的集群,推荐能稳定达到500 IOPS(比如:一个典型的本地SSD盘或者高性能的虚拟块设备盘)。注意,大多数云服务提供商发布的是瞬时并发IOPS,并不是稳定的IOPS,瞬时并发IOPS可能十倍于稳定连续的IOPS(说明:因为瞬时并发IOPS可能会写缓存,或者测试时无其他用户竞争磁盘资源,所以会很高,当测试时间很长后,就会测试出设备的真实IOPS能力,这个在国内云厂商基本没有这个问题)。测试稳定连续IOPS,我们建议使用磁盘基准测试工具,比如 diskbench 或者 fio
      etcd对磁盘带宽没什么要求,但是更大的磁盘带宽可以在失败节点加入集群时,更快的完成恢复操作。通常10MB/s带宽的磁盘15s可以恢复100MB的数据,对于大型集群,100MB/s或更高带宽的磁盘可以在15s内恢复1GB数据。
      如果有可能,etcd后端存储就用SSD。一个SSD磁盘和机械盘相比,通常会提供更低的写入延时和更少的数据跳变(variance),因此可以提高etcd集群的稳定性和可靠性。如果使用机械盘,尽可能使用最快的(15000转)。使用RAID 0也是一种有效提高磁盘性能的方法,不管是机械盘还是SSD都可以。etcd集群至少有3个节点,磁盘使用RAID做镜像或者做奇偶校验都是不必要的,因为etcd自身的一致性复制已经保证了数据的高可用。
  网络
      多节点部署的etcd集群会受益于快速和可靠的网络。为了满足etcd集群的一致性和分区容忍,一个不可靠网络出现网络分区会导致部分节点无效。低延时可以保证etcd成员之间快速通信,高带宽可以减少etcd故障节点的恢复时间。1Gb网络就可以满足常见的etcd部署场景,对于大型etcd集群,使用10Gb网络可以减少平均故障恢复时间。
      如果有可能,尽量将所有etcd成员节点部署在同一个数据中心,这样可以避免网络延时开销,降低发生网络分区的可能性。如果需要另外的数据中心级故障域,尽量选择和当前数据中心离得比较近的。也可以阅读性能调优文档,了解跨数据中心部署的更多信息。
  示例硬件配置
      这有一些在AWS和GCE环境上的硬件配置例子。如上所述,但是还是有必要再强调一下,无论如何,管理员在将etcd集群投入生产环境使用之前,都应该做一下模拟负载测试。
      请注意:这些配置假设这些服务器只用来跑etcd服务。如果在这些服务器上还跑其他服务,可能会导致其他服务和etcd抢资源,存在资源竞争问题,导致etcd集群不稳定。
  小型集群
      一个小型集群服务少于100个客户端,访问请求小于每秒200,并且存储不超过100MB的数据。
  示例应用负载:一个50节点的kubernetes集群
  提供商
  类型
  vCPUs
  内存 (GB)
  最大并发IOPS
  磁盘带宽 (MB/s)
  AWS
  m4.large
  2
  8
  3600
  56.25
  GCE
  n1-standard-2 + 50GB PD SSD
  2
  7.5
  1500
  25
  中型集群
      一个中型集群服务少于500个客户端,访问请求小于每秒1000,并且存储不超过500MB的数据。
  示例应用负载:一个250节点的kubernetes集群
  提供商
  类型
  vCPUs
  内存 (GB)
  最大并发IOPS
  磁盘带宽 (MB/s)
  AWS
  m4.xlarge
  4
  16
  6000
  93.75
  GCE
  n1-standard-4 + 150GB PD SSD
  4
  15
  4500
  75
  大型集群
      一个大型集群服务少于1500个客户端,访问请求小于每秒10000,并且存储不超过1GB的数据。
  示例应用负载:一个1000节点的kubernetes集群
  提供商
  类型
  vCPUs
  内存 (GB)
  最大并发IOPS
  磁盘带宽 (MB/s)
  AWS
  m4.2xlarge
  8
  32
  8000
  125
  GCE
  n1-standard-8 + 250GB PD SSD
  8
  30
  7500
  125
  超大型集群
      一个超大型集群服务超过1500个客户端,访问请求超过每秒10000,并且存储超过1GB的数据。
  示例应用负载:一个3000节点的kubernetes集群
  提供商
  类型
  vCPUs
  内存 (GB)
  最大并发IOPS
  磁盘带宽 (MB/s)
  AWS
  m4.4xlarge
  16
  64
  16,000
  250
  GCE
  n1-standard-16 + 500GB PD SSD
  16
  60
  15,000
  250
  官方原文链接:https://github.com/etcd-io/etcd/blob/master/Documentation/op-guide/hardware.md




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-670026-1-1.html 上篇帖子: 使用kubeadm部署k8s集群02 下篇帖子: 部署k8s ssl集群实践4:部署etcd集群
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表