导览
前言
etcd
是容器云常用的分布式数据存储工具,它采用经典的
RAFT
协议实现数据的一致性。为进一步加深对etcd集群的了解和使用,博主快马加鞭,再续新篇。本篇重点介绍如何实现etcd数据的可视化管理,请紧随博主的步伐,Let’s go~
Q:如何实现etcd数据的可视化管理
一、创建etcd集群
1. 节点定义
基于上篇文章(快捷入口),我们延续原集群的定义,即3个
node
:
节点名称节点IP端口etcd-node110.11.12.44:2380etcd-node210.11.12.45:2380etcd-node310.11.12.46:2380
2. 集群成员
启动每个node后,我们可以通过三步操作,查看成员列表。
2.1 docker ps
登录任意一个
node
,比如etcd-node1,查看
etcd
容器是否已启动(status=Up):
如上所示,代表成功,
next
。
2.2 docker exec
访问
etcd-node1
容器内部,执行如下命令:
docker exec -it etcd-node1 /bin/bash
运行结果如下:
如上所示,代表成功,
next
。
2.3 etcdctl member list
查看当前etcd-node1节点所在的集群成员列表:
etcdctl member list
运行结果如下:
如上所示,代表集群运行正常。
二、发布数据
集群正常工作后,我们正式开启数据发布之旅,比如添加一个K-V。
1. 添加数据
按照 2.2 说明执行操作,我们先进入etcd-node1容器内部(
当然你也可以选择另外2个node,博主以node1为例
):
保持当前连接状态,我们继续next。
# 添加一个key为`etcd`的值:"Hello etcd~"
etcdctl put etcd "Hello etcd~"
执行完成后,你可以观察当前key(
'etcd'
)是否已添加(出现
“OK”
字样):
如上所示,代表此key添加成功。
2. 数据共享
通过etcd-node1节点完成添加key的操作后,我们可以在另外2个节点中,验证此key是否已在集群内共享。只需分别执行如下命令:
# 获取key为`etcd`的值
etcdctl get etcd
etcd-node2结果如下:
etcd-node3结果如下:
至此,博主认为当前的 etcd 集群可以开始正常工作了(当然不考虑
安全
的前提下),是不是很简单?
提示
:这里使用到了 etcdctl 这个工具,它是一个支持etcd命令行的客户端,可与etcd集群进行交互,完成数据的共享与管理。
三、可视化管理
通过前两节的详细介绍,相信各位盆友可以掌握etcd集群的基本用法。不过可以多想想是否还有进一步提升的空间?Yes!
我们总不能在每次发布数据后,再通过
etcdctl
去观察吧?有句话说得好:
“言传不如身教,行动胜于言辞”
。有想法必有行动,正好前辈们也是这么认为的。这不博主马上给各位介绍一个etcd的好伙伴儿:
ETCD Keeper
——一个etcd集群数据管理的好帮手、好工具。
1. ETCD Keeper入门
1.1 简介
ETCD Keeper
是一款轻量级的etcd web客户端,支持etcd2和etcd3两个版本。
一句话总结
:我们可以使用它与etcd集群进行交互,比如查看、添加、删除、更新数据等操作。
1.2 安装
1.2.1 定义compose.yml
选择etcd集群内任意一个node,进行安装。博主依然选择以
docker compose
的方式进行操作举例,
docker-compose.yml
内容如下:
services:etcd-node1:image: bitnami/etcd:3container_name: etcd-node1
environment:- TZ=Asia/Shanghai
- ETCD_NAME=etcd-node1
- ETCD_DATA_DIR=/bitnami/etcd/data
- ALLOW_NONE_AUTHENTICATION=yes
- ETCD_ADVERTISE_CLIENT_URLS=http://10.11.12.44:2379- ETCD_INITIAL_ADVERTISE_PEER_URLS=http://10.11.12.44:2380- ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380- ETCD_INITIAL_CLUSTER_TOKEN=etcd-cluster
- ETCD_INITIAL_CLUSTER=etcd-node1=http://10.11.12.44:2380,etcd-node2=http://10.11.12.45:2380,etcd-node3=http://10.11.12.46:2380- ETCD_INITIAL_CLUSTER_STATE=new
restart: always
ports:- 2380:2380- 2379:2379volumes:- /app/etcd/data:/bitnami/etcd/data
#添加etcd管理工具keeperetcd-keeper:image: evildecay/etcdkeeper:latest
container_name: etcd-keeper
restart: always
ports:- 8000:8080
第一个service是etcd服务(延用上一篇配置),第二个service就是本次的添加的
etcd-keeper
(默认端口
8080
)。
etcd-keeper
默认监控本主机的
2379
端口(该端口是本机etcd节点的运行端口),所以无需指定etcd集群的IP端口。
1.2.2 启动keeper
准备好
docker-compose.yml
后,我们可以立即启动它。只需执行如下命令:
# 启动compose中的service
docker compose up -d
# 查看容器
docker compose ps
运行结果如下,我们可以发现2个service均已启动成功(status=Up):
接下来,好戏开场~
2. 数据管理
2.1 打开etcdkeeper
我们打开浏览器,输入
http://10.11.12.44:8000/etcdkeeper/
,即可打开etcd-keeper的web客户端,界面如下所示:
提示
:keeper默认监控的地址是127.0.0.1,需要改为ectd集群节点的实际IP。否则可能拒绝连接。
2.2 数据操作
通过该web客户端,我们可以轻松的向etcd集群发布数据。比如添加目录或文件:
是不是很直观?很简单?很高效?
结语
当我们拥有了一个etcd集群后,是不是该考虑如何进行有效的数据管理和监控?答案是肯定的。虽然
etcd
本身提供了客户端工具
etcdctl
(基于命令行),但是etcd keeper面向现实场景提供了更好的解决方案,所以更适用于日常的工作实践。
走过的、路过的盆友们,点点赞,收收藏,并加以指导,以备不时之需哈~
系列回顾
微服务实战系列之玩转Docker(十六)
微服务实战系列之玩转Docker(十五)
微服务实战系列之玩转Docker(十四)
微服务实战系列之玩转Docker(十三)
微服务实战系列之玩转Docker(十二)
微服务实战系列之玩转Docker(十一)
微服务实战系列之玩转Docker(十)
微服务实战系列之玩转Docker(九)
微服务实战系列之玩转Docker(八)
微服务实战系列之玩转Docker(七)
微服务实战系列之玩转Docker(六)
微服务实战系列之玩转Docker(五)
微服务实战系列之玩转Docker(四)
微服务实战系列之玩转Docker(三)
微服务实战系列之玩转Docker(二)
微服务实战系列之玩转Docker(一)
微服务实战系列之云原生
版权归原作者 一叶飞舟 所有, 如有侵权,请联系我们删除。