k8s-etcd集群

ETCDCTL_API=3 etcdctl snapshot save /root/etcd.db
ETCDCTL_API=3 etcdctl snapshot restore /root/etcd.db --data-dir=/root/etcd

mv /root/etcd /var/lib

kubectl rollout undo deployment deploy名称 -nxx

etcd 是 CoreOS 团队发起的开源项目,是一个管理配置信息和服务发现(service discovery)的项目, 它的目标是构建一个高可用的分布式键值(key-value)数据库,基于 Go 语言实现。

特点:

简单:支持 REST 风格的 HTTP+JSON API

安全:支持 HTTPS 方式的访问

快速:支持并发 1k/s 的写操作

可靠:支持分布式结构,基于 Raft 的一致性算法,Raft 是一套通过选举主节点来实现分布式 系统一致性的算法。

适应场景

etcd基于其优秀的特点,可广泛的应用于以下场景:

服务发现(Service Discovery):服务发现主要解决在同一个分布式集群中的进程或服务,要如何才能找 到对方并建立连接。本质上来说,服务发现就是想要了解集群中是否有进程在监听udp或tcp端口,并且 通过名字就可以查找和连接。

消息发布与订阅:在分布式系统中,最适用的一种组件间通信方式就是消息发布与订阅。即构建一个配 置共享中心,数据提供者在这个配置中心发布消息,而消息使用者则订阅他们关心的主题,一旦主题有 消息发布,就会实时通知订阅者。通过这种方式可以做到分布式系统配置的集中式管理与动态更新。应 用中用到的一些配置信息放到etcd上进行集中管理。

负载均衡:在分布式系统中,为了保证服务的高可用以及数据的一致性,通常都会把数据和服务部署多 份,以此达到对等服务,即使其中的某一个服务失效了,也不影响使用。etcd本身分布式架构存储的信 息访问支持负载均衡。etcd集群化以后,每个etcd的核心节点都可以处理用户的请求。所以,把数据量 小但是访问频繁的消息数据直接存储到etcd中也可以实现负载均衡的效果。

分布式通知与协调:与消息发布和订阅类似,都用到了etcd中的Watcher机制,通过注册与异步通知机 制,实现分布式环境下不同系统之间的通知与协调,从而对数据变更做到实时处理。

posted @ 2021-11-28 20:19  gg888666  阅读(90)  评论(0编辑  收藏  举报