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

微服务实战系列之玩转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:3container_name: etcd-node1environment:- 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=newrestart: alwaysports:- 2380:2380- 2379:2379volumes:- /app/etcd/data:/bitnami/etcd/data#添加etcd管理工具keeperetcd-keeper:image: evildecay/etcdkeeper:latestcontainer_name: etcd-keeperrestart: alwaysports:- 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(一)
微服务实战系列之云原生

在这里插入图片描述

相关文章:

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

导览 前言Q:如何实现etcd数据的可视化管理一、创建etcd集群1. 节点定义2. 集群成员2.1 docker ps2.2 docker exec2.3 etcdctl member list 二、发布数据1. 添加数据2. 数据共享 三、可视化管理1. ETCD Keeper入门1.1 简介1.2 安装1.2.1 定义compose.yml1.2.2 启动ke…...

操作系统-实验报告单(1)

目录 1 实验目标 2 实验工具 3 实验内容、实验步骤及实验结果 一、安装虚拟机及Ubuntu 5、*存在虚拟机不能安装的问题 二、Ubuntu基本操作 1、桌面操作 2、终端命令行操作 三、在Ubuntu下运行C程序 3、*Ubuntu中编写一个Hello.c的主要程序 4 实验总结 实 验 报 告…...

rom定制系列------小米8青春版定制安卓14批量线刷固件 原生系统

💝💝💝小米8青春版。机型代码platina。官方最终版为 12.5.1安卓10的版本。客户需要安卓14的固件以便使用他们的软件。根据测试,原生pixeExpe固件适配兼容性较好。为方便客户批量进行刷写。修改固件为可fast批量刷写。整合底层分区…...

CATIA许可证常见问题解答

在使用CATIA软件的过程中,许可证问题常常是用户关心的焦点。为了帮助大家更好地理解和解决这些问题,我们整理了一份CATIA许可证常见问题解答,希望能为您提供便捷的参考。 问题一:如何激活CATIA许可证? 解答&#xff1a…...

PySpark Standalone 集群部署教程

目录 1. 环境准备 1.1 配置免密登录 2. 下载并配置Spark 3. 配置Spark集群 3.1 配置spark-env.sh 3.2 配置spark-defaults.conf 3.3 设置Master和Worker节点 3.4 设配置log4j.properties 3.5 同步到所有Worker节点 4. 启动Spark Standalone集群 4.1 启动Master节点 …...

【源码+文档】基于SpringBoot+Vue旅游网站系统【提供源码+答辩PPT+参考文档+项目部署】

作者简介:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流。✌ 主要内容:🌟Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能…...

9.排队模型-M/M/1

1.排队模型 在Excel中建立排队模型可以帮助分析系统中的客户流动和服务效率。以下是如何构建简单排队模型的步骤: 1.确定模型参数 到达率(λ):客户到达系统的平均速率(例如每小时到达的客户数)。服务率&…...

【GO学习笔记 go基础】编译器下载安装+Go设置代理加速+项目调试+基础语法+go.mod项目配置+接口(interface)

编译器下载&安装 下载并安装go1.23.2.windows-amd64.msi默认安装再C:\Program Files\Go\ PS C:\Users\kingchuxing\Documents> go version go version go1.23.2 windows/amd64Go设置GOPROXY国内加速 windows // 启用 Go Modules 功能 PS C:\Users\kingchuxing…...

从0开始学习shell脚本

了解Shell和Shell脚本 Shell:Shell是一个命令解释器,用来执行用户输入的命令。常用的Shell包括Bash、Zsh、Ksh等。Linux默认的Shell通常是Bash。 Shell脚本:Shell脚本是由一系列命令组成的文件,脚本可以运行一连串命令&#xff…...

官方工具重装Windows 11当前版本 /绕过硬件检查/免U盘

官方工具重装Windows 11当前版本 /绕过硬件检查/免U盘 官方工具重装Windows 11当前版本 /绕过硬件检查/免U盘_win11安装跳过检测-CSDN博客...

JavaEE初阶---网络原理/UDP服务器客户端程序

文章目录 1.网络初识2.网络编程2.1TCP/UDP区别介绍2.2UDP的socket api使用2.3UDP协议里面的服务器客户端程序 1.网络初识 网络和计算机类似:都是属于军用》民用; 网络诞生于美苏争霸时期,当时就感觉核战争一触即发,形式非常严峻…...

每天10个vue面试题(六)

1、对Vue设计原则的理解? 渐进式JavaScript框架:与其它大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化…...

Qt:信号和槽

目录 关于信号 connect函数 关于connect connect的使用 自定义信号、自定义槽 自定义槽 第一种方式自定义槽 第二种方式自定义槽 自定义信号 信号槽 带参数的信号槽 参数个数一致的示例 参数个数不一致的示例 Q_OBJECT 信号和槽存在的意义 disconnect函数 使用…...

可以免费商用的字体下载

这里介绍一个开源仓库,收录的可以免费商用的字体,目前中文字体1308款,英文字体980款,共约2288多款字体。 Description Free fonts that can be used commercially.There are currently 1308 Chinese fonts and 980 English font…...

centos7之LVS-TUNNEL模式

介绍 优缺点以及适用场景 优点:能负载更多的Realserver减轻LB的压力。LVS和Realserver可以不再同一网段。 缺点:tun模式的开销比较大(出口流量大),性能不如DR模式。不支持端口转发。后端Realserver系统必须支持tunnel协议。 适用&#xff…...

Linux驱动开发(3):字符设备驱动

上一章节我们了解到什么是内核模块,模块的加载卸载详细过程以及内核模块的使用等内容。 本章,我们将学习驱动相关的概念,理解字符设备驱动程序的基本框架,并从源码上分析字符设备驱动实现和管理。 主要内容有如下五点:…...

刘艳兵-DBA023-控制文件是Oracle 数据库用来查找数据库文件,控制文件包含以下哪些信息:

控制文件是Oracle 数据库用来查找数据库文件,控制文件包含以下哪些信息: A 表空间信息 B 创建数据库的时间戳 C 有关数据文件、 联机重做日志文件、和归档重做日志文件的信息 D 数据库名称和数据库唯一标识符(DBID) E RMAN备份…...

Vue Scoped CSS深度解析:原理、误区与最佳实践

引言 在Vue开发中,Scoped CSS是一个强大而复杂的功能。它允许我们将样式限制在特定组件内,但同时也带来了一些细微的行为,可能导致意外的样式"泄漏"。本文将深入探讨Vue Scoped CSS的工作原理,解释常见的误区&#xff…...

744. 寻找比目标字母大的最小字母

目录 题目解法一解法二如何比较字符串letters.back()*upper_bound为什么要加* 题目 给你一个字符数组 letters,该数组按非递减顺序排序,以及一个字符 target。letters 里至少有两个不同的字符。 返回 letters 中大于 target 的最小的字符。如果不存在这…...

浅谈QT中Tab键的切换逻辑

浅谈QT中Tab键的切换逻辑 无意中发现在输入界面中按下Tab键时,没有按照预想的顺序切换焦点事件,如下图所示 这个现象还是很有趣,仔细观察了下,默认的切换顺序是按照控件拖入顺序,那么知道了这个问题想要解决起来就很简…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)

引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...

渗透实战PortSwigger靶场:lab13存储型DOM XSS详解

进来是需要留言的&#xff0c;先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码&#xff0c;输入的<>当成字符串处理回显到页面中&#xff0c;看来只是把用户输…...

[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG

TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码&#xff1a;HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...

Qt的学习(一)

1.什么是Qt Qt特指用来进行桌面应用开发&#xff08;电脑上写的程序&#xff09;涉及到的一套技术Qt无法开发网页前端&#xff0c;也不能开发移动应用。 客户端开发的重要任务&#xff1a;编写和用户交互的界面。一般来说和用户交互的界面&#xff0c;有两种典型风格&…...