Kubernetes之详解Etcd集群

<强>

随着kubernetes项目的日益火热,该项目中用到的etcd组件作为一个高可用强一致性的服务发现存储仓库,渐渐的被开发人员所关注。

在云计算时代,如何让服务快速,透明的接入到计算集群中,如何让共享配置信息快速被集群中的所有节点发现,如何构建一套高可用,安全,易于部署以及快速响应的服务集群成为了需要解决的问题。

etcd为解决这类问题带来便捷。

<强>官方地址:https://coreos.com/etcd/

<强>项目地址:https://github.com/coreos/etcd

 kubernetes之详解etcd集群

<强>

etcd是一个高可用的键值存储系统,<强> 强,它通过筏一致性算法处理日志复制以保证强一致性,我们<强>

在kubernetes集群中,etcd主要用于配置共享和服务发现

etcd主要解决的是分布式系统中数据一致性的问题,而分布式系统中的数据分为控制数据和应用数据,etcd处理的数据类型为控制数据,对于很少量的应用数据也可以进行处理。

<强>

<强>

管理员有如下缺点

<李>

<强> 1。复杂。管理员的,管理员需要掌握一系列的知识和技能,而Paxos强一致性复杂难懂而闻名于世(;另外,动物园管理员的使用也比较复杂,需要安装客户端,官方只提供了Java和C两种语言的接口。

<李>

<强> 2。Java编写。这里不是对Java有偏见,而Java本是身就偏向于,它会引入大量的依赖。而运维人员则普遍希望保持强一致,高可用的机器集群尽可能简单,维护起来也不易出错。

<李>

<强> .Apache基金会项目特有的“Apache”在开源界饱受争议,其中一大原因就是由于基金会庞大的结构以及松散的管理导致项目发展缓慢。

相较之下,Etcd

,,,,, <强> 1。简单。使用去语言编写;使用HTTP作为接口易于理解。

<李>

.etcd默认数据一更新就进行持久化。

<李>

.etcd支持SSL客户端安全认证。

<强>

 Kubernetes之详解Etcd集群

<强>

<强>

来维护集群内各个节点状态的。简单说,Etcd集群是一个分布式系统,由多个节点相互通信构成整体对外服务,<强> 强,并且通过筏协议保证每个节点维护的数据是一致的。

<强> Etcd主要分为四个部分

<李>

<强> :用于处理用户发送的API请求以及其他Etcd节点的同步与心跳信息请求

<李>

<强> :

<李>

<强> :筏强一致性算法的具体实现,是Etcd的核心。

<李>

:提前写日志(预写式日志/日志先行),是Etcd的数据存储方式,也是一种实现事务日志的标准方法.etcd通过细胞膜进行持久化存储,所有的数据提交前都会事先记录日志.Snapshot是为了防止数据过多而进行的状态快照;条目表示存储的具体日志内容。

<强>

1。一个强一致性,高可用的服务存储目录。基于筏算法的etcd天生就是这样一个强一致性高可用的服务存储目录。

2。一种注册服务和监控服务健康状态的机制。用户可以在etcd中注册服务,并且对注册的服务设置关键TTL、定时保持服务的心跳以达到监控健康状态的效果。

3。一种查找和连接服务的机制。通过在 etcd 指定的主题下注册的服务也能在对应的主题下查找到。为了确保连接,我们可以在每个服务机器上一个 Proxy 模式的 etcd,这样就可以确保能访问 etcd 集群的服务都能互相连接。
例如随着 Docker 容器的流行,多种微服务共同协作,构成一个相对功能强大的架构的案例越来越多。透明化的动态添加这些服务的需求也日益强烈。通过服务发现机制,在 etcd 中注册某个服务名字的目录,在该目录下存储可用的服务节点的 IP。在使用服务的过程中,只要从服务目录下查找可用的服务节点去使用即可。

Raft算法分为三部分

Kubernetes之详解Etcd集群