当前位置: 首页 > article >正文

微服务实战系列之玩转Docker(十七)

导览

  • 前言
  • Q:如何实现etcd数据的可视化管理
  • 一、创建etcd集群
    • 1. 节点定义
    • 2. 集群成员
      • 2.1 docker ps
      • 2.2 docker exec
      • 2.3 etcdctl member list
  • 二、发布数据
    • 1. 添加数据
    • 2. 数据共享
  • 三、可视化管理
    • 1. ETCD Keeper入门
      • 1.1 简介
      • 1.2 安装
        • 1.2.1 定义compose.yml
        • 1.2.2 启动keeper
    • 2. 数据管理
      • 2.1 打开etcdkeeper
      • 2.2 数据操作
  • 结语
  • 系列回顾

前言

etcd容器云常用的分布式数据存储工具,它采用经典的RAFT协议实现数据的一致性。为进一步加深对etcd集群的了解和使用,博主快马加鞭,再续新篇。本篇重点介绍如何实现etcd数据的可视化管理,请紧随博主的步伐,Let’s go~

在这里插入图片描述

Q:如何实现etcd数据的可视化管理

一、创建etcd集群

1. 节点定义

基于上篇文章(快捷入口),我们延续原集群的定义,即3个node

节点名称节点IP端口
etcd-node110.11.12.44:2380
etcd-node210.11.12.45:2380
etcd-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:3
    container_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:2379
    volumes:
      - /app/etcd/data:/bitnami/etcd/data
      
  #添加etcd管理工具keeper
  etcd-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(一)
微服务实战系列之云原生

在这里插入图片描述


http://www.kler.cn/a/375442.html

相关文章:

  • Cpp多态机制的深入理解(20)
  • HJ33 整数与IP地址间的转换
  • 刘艳兵-DBA016-在您的数据库中,SALES表存在于SH用户中,并且启用了统一审计。作为DBA,您成功执行了以下指令:
  • 手动搭建koa+ts项目框架(node开发配置环境变量)
  • vfx特效有多烧钱?云渲染农场减少vfx特效成本
  • 智能家居10G雷达感应开关模块,飞睿智能uA级别低功耗、超高灵敏度,瞬间响应快
  • 人工智能基础 opencv
  • 【Orange Pi 5 Linux 5.x 内核编程】-等待队列(WaitQueue)
  • 0xGame 2024 [Week 4] Jenkins
  • 英伟达 GPU 架构:演进与模型推理速度的深度关联
  • 真题与解析 202109二级 青少年软件编程(Python)考级
  • echarts柱状图 x轴显示不完文字的处理方法和有些指标默认不显示的问题
  • 浅谈网络安全
  • Php实现钉钉OA一级审批,二级审批
  • docker Desktop开启远程访问端口
  • java设计模式之创建者模式(5种)
  • Golang | Leetcode Golang题解之第525题连续数组
  • VB中的单元测试(Unit Testing)和集成测试(Integration Testing)
  • 详解CRC校验原理以及FPGA实现
  • nVisual标签打印模块的部署与使用
  • Android Studio中Gradle一直在加载怎么解决(首次安装过程中)
  • Spark_跑批__.checkpoint()为什么比.persist()快
  • TikTok视频上传失败:原因与解决方案
  • 【AI学习】Mamba学习(十四):S5模型的矩阵A对角化
  • 黑龙江某涝区泵闸站自动化、信息化改造项目案例
  • C语言函数嵌套调用