草庐IT

安利安利-向大家推荐一个超级牛的etcd管理工具-EtcdKeeperFyne

Achou.Wang 2023-07-09 原文

etcd介绍

关于etcd的介绍大家可以看下这篇文章 etcd

开源仓库地址:EtcdKeeperFyne

EtcdKeeperFyne

今天主要是向大家推荐一款使用起来特别方便的Etcd管理工具 EtcdKeeperFyne,具体运行起来的界面如下:

推荐原因

  1. 使用简单
  2. 安装简单,使用go语言编写,所见即所得,你所需要的就是一个可执行文件,再也不用像其他工具一样使用需要自己搭建http服务器,然后添加一堆配置了,这个工具只需要双击执行即可
  3. 免费开源,不必担心使用习惯了之后突然收费的问题
  4. 提供工具众多,你能对etcd操作的步骤,其他工具没有提供的工具这里都提供了,对LeaseId的操作,对数据的增删改查等,取证…统统支持
  5. 更新快,只需要在项目的 https://gitee.com/andrewgithub/EtcdKeeperFyne 工程页面提出需要添加的issues,项目的维护者会及时添加上新的功能

以下是软件官方介绍

EtcdKeeperFyne

介绍

etcd 跨平台管理工具,用于连接etcd,对etcd进行增删改查等…

目前常见的Etcd管理工具都是基于web的,使用时通常还需要自己搭建一个web服务器,而且操作起来很不方便,基于此诞生了这款使用方便,操作简单的Etcd管理工具。

特点:安装简单,使用方便

如果感觉该软件对你有用可以请开发人员喝杯咖啡!!!

后续有什么软件开发建议欢迎提交Issu或者关注公众号:码上有话!后台留言

软件架构

采用go语言fyne库提供的模块化功能,将etcd中常用的增删改查进行UI化

安装教程

本软件具有go语言的特点,所有程序都是单独的可执行程序,所见及所得,直接下载对应版本软件然后执行即可,如果出现以下界面说明软件启动成功。

启动

  1. 源码编译

先将源码下载过来

git clone https://gitee.com/andrewgithub/EtcdKeeperFyne.git

然后进入源码目录 EtcdKeeperFyne,执行 go build,执行结束会得到一个EtcdKeeperFyne(linux)的binary可执行文件或者EtcdKeeperFyne.exe(windows)的可执行文件。
如果在windows上执行出现一下问题:

说明你的电脑里面缺少必要的opengl兼容库,可以去 https://fdossena.com/?p=mesa/index.frag 上下载对应版本的兼容dll,然后将下载的openglxx.dll和EtcdKeeperFyne.exe放到同一目录下执行即可

如果是64位windows电脑可以直接下载目录下的opengl32.dll使用

使用说明

  1. 连接etcd

点击etcd->Host

在Index一栏选择当前连接使用的连接号,默认情况下先连接0号客户端再连接1号客户端,如果只需要连接一个客户端Index默认选0即可
然后填入连接etcd需要的用户名,密码以及host(地址和端口),其中用户名和密码默认情况下可以不填写。

填写完之后选择Log In按钮创建连接。
如果连接过程出错会在应用做下角提示最近的出错信息

  1. 更换主题

更换主题就不多说了,就是对软件进行常见的字体大小,颜色以及主题进行设置,根据个人喜好进行设置即可,设置好之后点击Apply设置的参数会立即生效。

  1. 全局刷新

点击左上角的刷新按钮,会对kye-value值进行刷新,如果有其它软件同步修改etcd的kv值,需要人工点击下刷新,获取新的kv值

  1. 创建LeaseId(租约ID)和使用租约

在刷新按钮的左侧提供了创建租约的工具,TTL(单位s)后面填写租约的时间,后面的曲别针按钮即创建租约的按钮,点击之后即可创建对应ttl的租约。

  1. 添加kv值

在key中填上对应的key值,value中输入value值,点击add按钮即实现了kv的设置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dNM9Tkd3-1680229530468)(image/2023-03-13-14-48-10-image.png)]

  1. 添加临时kv值(绑定租约的kv值)

如果创建kv时需要绑定租约,需要先创建租约,然后在菜单中点击Edit->Lease或者使用快捷键Alt+L调用出租约选择窗口

选择对应的租约(确保当前etcd中存在租约),然后按确认键即可

租约选择好之后,会在右下角提供当前使用的租约

以上操作完之后,再添加kv值就是绑定租约之后的kv值了,如果想创建永久变量,需要重新在租约选择界面 Edit->Lease界面将租约选择为0,然后在添加KV值

  1. 删除key-value值

点击值列表左侧对应的Delete按钮即可

  1. 查看对应Key值的详细信息

点击对应key值,并在右侧详细信息列表中选中Value Edit即可查看对应值信息

  1. 更新Value值信息

选中对应的key值,之后在详细信息界面修改对应value值然后点击下方的长条更新按钮即可更新对应的Value值

  1. 租约的续租和查看

详细信息中部是租约查看列表,KeeperAlive用来对对应的LeaseID进行续租,Refresh会刷新对应LeaseId的租约信息,主要的是最右侧的剩余时间

  1. 大Value值查看

如果value中存储的Value值很大,在详细信息界面查看value值查看不全,可以点击ValueShow界面单独查看对应的value值信息

  1. 查看租约绑定的key值

切换到Lease界面,点击对应的租约信息节课即可查看对应Lease租约绑定的key值信息

  1. 执行Etcd镜像功能

确保连接两个Etcd服务器

镜像需要在两个Etcd之间进行,如果先前没有连接过Etcd这时需要在菜单中Etcd->Host->Index中从0开始连接,然后在Index选择1连接,两个都连接成功之后,可以在详细信息页面选择切换查看是否两个Host都连接成功

另外,选择按钮下方两个颜色块,正常情况下是灰显的,只有对应客户端连接成功之后才会变成彩色呼吸样式,颜色一直呼吸,说明两个客户端都处于连接成功状态

注:必须保证连接的两个Etcd不是同一个,否则一个Etcd往自己身上镜像时会导致死循环,因为A->A,镜像,那么A->A镜像的过程又会通知A,比如你向A写入一个值,A会通知A(执行镜像的一端)有新值来了,你要不要镜像过去,A说来吧。然后执行镜像,但是执行镜像还是会向A中写入一个值,这个时候A又通知A(执行镜像的一段)又有新值来了,你要不要镜像噻?A说来吧…,就这样陷入了死循环,导致机器要么性能耗尽要么内存耗尽。

调整镜像方向

通过点击呼吸方块上的In/Out按钮,可以调整那个Etcd读那个Etcd写入,Out代表从该Etcd中读入数据,In代表往该Etcd中写入数据

开始镜像

如果以上过程都执行成功,那么就可以开启镜像了,开启镜像比较简单,只需要店家Make Mirror按钮即可,开启镜像之后会有代表镜像运行过程的按钮一直在来回运动,说明镜像在一直执行

开启镜像功能之后数据会从Out->In的方向进行自动复制,你只需向Out的Etcd中写入数据,对应的数据会自动同步到In的Etcd中

参与贡献

  1. Fork 本仓库
  2. 新建 Feat_xxx 分支
  3. 提交代码
  4. 新建 Pull Request

特技

  1. 菜单中选择Etcd->CopyImage, 会将当前界面的信息按照Png编码的图片复制到剪贴板上
  2. 菜单中选择Etcd->CopyJson,会将当前界面的详细信息格式化成json放到剪贴板上
  3. 菜单中Help->ShortCutInfo,可以查看软件中支持的快捷键信息

有关安利安利-向大家推荐一个超级牛的etcd管理工具-EtcdKeeperFyne的更多相关文章

  1. ruby - 使用 Vim Rails,您可以创建一个新的迁移文件并一次性打开它吗? - 2

    使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta

  2. ruby-on-rails - Rails - 一个 View 中的多个模型 - 2

    我需要从一个View访问多个模型。以前,我的links_controller仅用于提供以不同方式排序的链接资源。现在我想包括一个部分(我假设)显示按分数排序的顶级用户(@users=User.all.sort_by(&:score))我知道我可以将此代码插入每个链接操作并从View访问它,但这似乎不是“ruby方式”,我将需要在不久的将来访问更多模型。这可能会变得很脏,是否有针对这种情况的任何技术?注意事项:我认为我的应用程序正朝着单一格式和动态页面内容的方向发展,本质上是一个典型的网络应用程序。我知道before_filter但考虑到我希望应用程序进入的方向,这似乎很麻烦。最终从任何

  3. ruby-on-rails - 渲染另一个 Controller 的 View - 2

    我想要做的是有2个不同的Controller,client和test_client。客户端Controller已经构建,我想创建一个test_clientController,我可以使用它来玩弄客户端的UI并根据需要进行调整。我主要是想绕过我在客户端中内置的验证及其对加载数据的管理Controller的依赖。所以我希望test_clientController加载示例数据集,然后呈现客户端Controller的索引View,以便我可以调整客户端UI。就是这样。我在test_clients索引方法中试过这个:classTestClientdefindexrender:template=>

  4. ruby-on-rails - 如果 Object::try 被发送到一个 nil 对象,为什么它会起作用? - 2

    如果您尝试在Ruby中的nil对象上调用方法,则会出现NoMethodError异常并显示消息:"undefinedmethod‘...’fornil:NilClass"然而,有一个tryRails中的方法,如果它被发送到一个nil对象,它只返回nil:require'rubygems'require'active_support/all'nil.try(:nonexisting_method)#noNoMethodErrorexceptionanymore那么try如何在内部工作以防止该异常? 最佳答案 像Ruby中的所有其他对象

  5. ruby - 为什么 SecureRandom.uuid 创建一个唯一的字符串? - 2

    关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion为什么SecureRandom.uuid创建一个唯一的字符串?SecureRandom.uuid#=>"35cb4e30-54e1-49f9-b5ce-4134799eb2c0"SecureRandom.uuid方法创建的字符串从不重复?

  6. ruby-on-rails - Rails - 从另一个模型中创建一个模型的实例 - 2

    我有一个正在构建的应用程序,我需要一个模型来创建另一个模型的实例。我希望每辆车都有4个轮胎。汽车模型classCar轮胎模型classTire但是,在make_tires内部有一个错误,如果我为Tire尝试它,则没有用于创建或新建的activerecord方法。当我检查轮胎时,它没有这些方法。我该如何补救?错误是这样的:未定义的方法'create'forActiveRecord::AttributeMethods::Serialization::Tire::Module我测试了两个环境:测试和开发,它们都因相同的错误而失败。 最佳答案

  7. ruby - 用 Ruby 编写一个简单的网络服务器 - 2

    我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b

  8. ruby - 一个 YAML 对象可以引用另一个吗? - 2

    我想让一个yaml对象引用另一个,如下所示:intro:"Hello,dearuser."registration:$introThanksforregistering!new_message:$introYouhaveanewmessage!上面的语法只是它如何工作的一个例子(这也是它在thiscpanmodule中的工作方式。)我正在使用标准的ruby​​yaml解析器。这可能吗? 最佳答案 一些yaml对象确实引用了其他对象:irb>require'yaml'#=>trueirb>str="hello"#=>"hello"ir

  9. ruby-on-rails - Rails 中的推荐引擎 - 2

    我想为我的Rails网络应用程序提供推荐功能。特别是,我想向新注册的用户推荐他可能想要关注的其他用户。Rails中是否有用于此目的的引擎/gem?如果没有,我应该从哪里开始构建它?谢谢。 最佳答案 有Coletivogemhttps://github.com/diogenes/coletivo我试了一下。在MySQL上运行。Neo4jhttp://neo4j.org真的很容易实现一个“跟随谁”。事实上,大多数展示其能力的样本都涉及“跟随谁”。快速提示-只有在JRuby上运行时,Neo4j.rb才会很酷。如果不是-使用Neograph

  10. ruby - Rails 关联 - 同一个类的多个 has_one 关系 - 2

    我的问题的一个例子是体育游戏。一场体育比赛有两支球队,一支主队和一支客队。我的事件记录模型如下:classTeam"Team"has_one:away_team,:class_name=>"Team"end我希望能够通过游戏访问一个团队,例如:Game.find(1).home_team但我收到一个单元化常量错误:Game::team。谁能告诉我我做错了什么?谢谢, 最佳答案 如果Gamehas_one:team那么Rails假设您的teams表有一个game_id列。不过,您想要的是games表有一个team_id列,在这种情况下

随机推荐