转载

etcd2.1发布了!

【编者:etcd2.1为etcd的官方最新版本,支持众多高级功能如:在线不中断更新与新的鉴权API等众多改进与新功能】

经过数月的艰苦工作,etcd2.1发布了。自从1月份2.0版本发布以来,整个研发团队收集了来自真实生产环境中的众多反馈信息,正是基于这些反馈我们发了新的2.1版本;新功能包括:鉴定/授权API、新的监控API、改进了传输的稳定性、改进了etcd服务器集群之间传输数据的性能、增强了集群的运行稳定性。

etcd是一个开源的、分布式的、基于键值对存储的服务器集群共享配置、服务发现以及服务节点调度解决方案。使用etcd,集群可以应付单点失效问题;同时etcd也是CoreOS的核心组件,它为CoreOS带来了自动节点配置自动更新,节点工作协调以及容器网络堆叠(setting up overlay networking for containers)等功能。

如果你觉得看简介比较繁琐,你可以在 GitHub上 下载我们最新的二进制文件。同时,etcd2.1.1已经包含在了CoreOS 725.1.0中了(现在在alpha通道中),所以你可以自己下载去玩耍。

从2.0版不宕机滚动升级

从2.0版升级到2.1版可以不停服务完成升级。你可以根据向导提示,将集群一步步从2.0升级到2.1.详细信息可以参考 升级文档 。如果你当前运行的版本低于0.4.X则你必须先升级到2.0,然后从2.0版升级到2.1.

同时,etcd2.1是目前最新的发布版本;所以所有的bug修改都会以2.1版本为基础,不在针对之前的2.0.X版本发布修改。

发布鉴权API

这次更新一个重要的特性是在 /v2/auth 这个端,为etcd的键值对API加入了鉴权的功能;这个API允许你通过为key加入用户与角色的前缀并通过HTTP的方式来鉴权;这样可以使团队合作更加可控。这个功能包含在etcd的HTTP Server、etcd的ctl客户端以及 etcd/client 的Go开发包中。你可以在etcd权限管理文档中找到更多的细节。但是还是要注意,这是个实验型的功能,而且会随着用户不断的反馈而改进;我想我们的方向是正确的,但是对于API的细节可能会发生调整。

改进了传输稳定性

很多使用etcd的用户所在的网络环境不是很好,包括高延迟,网络数据不一致等问题比较多;我们虽然不能保证etcd可以应付所有复杂的网络环境,但是我们在这一版中对etcd在使用网络方面做了很多优化,使得etcd在复杂网络环境情况下能够更好的工作。

首先,我们减少了建立连接的开销,同时使得一致性协议(raft)的通信更加高效与稳定;现在etcd的节点之间通过长连接来进行通信。其次,为了减少raft命令提交延迟,每个raft附加消息(append massage)都附属在一个“提交索引”(commit index)之下;在轻负荷(<100写操作/秒)情况下提交延迟由100ms减少到1ms。最后, etcd的新的raft实现 能提供更好的内部数据流转控制、显著的减少了raft消息丢包的情况同时还改进了CPU与内存的使用效率。

对etcd进行功能性测试

我们在发布2.1之前的4个月就开始对etcd进行了严格的“ 错误分支插入 ”(fault-injecting)与自建的功能测试框架的严格测试;我们的目标是让etcd在重度使用的情况下仍能够保持功能上的容错性。在这几个月的测试中,我们发现etcd能够在很多极其严苛与各种功能失效的情况下保持服务的鲁棒性。而且我们会在2.1发布之后持续对etcd进行测试。

现在支持分级日志了。用户根据业务需要设置日志级别;同时对于DEBUG级别的日志我们会重复啰嗦的记录几遍,所以etcd的默认日志的可读性会提高很多。你可以通过设置flag来控制日志的级别,参考。etcd2.1发布了新的,并可以用于排错(debug)与实时(real-time)的监控。它提供了对客户端使用情况与资源利用方面的统计功能。向之前的鉴权API一样,这个也是实验性的功能,可能会根据反馈调整、改进。我们会一如既往的为把etcd打造成一个Google风格的低层的基础构件,用户可以开箱即用、信任它并且依赖它提供的服务。,持续为我们提供您的反馈,。

正文到此结束
Loading...