一、概述
背景:近期k8s应用中etcd的功能存在一些困惑,对其进行来单独的学习,能更深入理解k8s中的的一些特性。
- 简单:安装配置简单,而且提供了HTTP API进行交互,使用也很简单
- 安全:支持SSL证书验证
- 快速:根据官方提供的benchmark数据,单实例支持每秒2k+读操作
- 可靠:采用raft算法,实现分布式系统数据的可用性和一致性
二、应用场景
- 服务注册与发现
- 消息发布与订阅
- 负载均衡
- 分部署通知与协调
- 分布式锁
- 分布式队列
- 集群与监控与Leader选举
三、安装部署
推荐使用yum安装方式
hostnamectl set-hostname etcd-1
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpmyum 仓库中的etcd版本为3.3.11,如果需要最新版本的etcd可以进行二进制安装
yum -y install etcd
systemctl enable etcd
四、简单使用
1、增加 set
$ etcdctl set /testdir/testkey “Hello world”
Hello world
2、删除 rm
$ etcdctl rm /testdir/testkey
PrevNode.Value: Hello
3、更新 update
etcdctl update /testdir/testkey “Hello”
Hello
4、查询 get
etcdctl get /testdir/testkey
Hello world
五、总结
etcd 默认只保存 1000 个历史事件,所以不适合有大量更新操作的场景,这样会导致数据的丢失。 etcd 典型的应用场景是配置管理和服务发现,这些场景都是读多写少的。
相比于 zookeeper,etcd 使用起来要简单很多。不过要实现真正的服务发现功能,etcd 还需要和其他工具(比如 registrator、confd 等)一起使用来实现服务的自动注册和更新。
目前 etcd 还没有图形化的工具。
赏
使用支付宝打赏
使用微信打赏
欢迎点击上方按钮对我打赏,谢谢你给我吃糖果