大家好,我是小碗汤,今天分享一个用Golang开发,很好玩的工具`KubeCraftAdmin`[1]用Minecraft方式管理k8s的工具,感兴趣的兄弟不妨玩一玩。文末有视频,供您鉴赏~

Minecraft:我的世界,是微软旗下的沙盒游戏。玩家可以在一个3D世界内与方块进行交互。这是一款广受欢迎的游戏,玩家可以用数字块构建梦幻般的虚拟世界

为什么没有一个身历其境的3D沙盒用户界面,来管理容器编排中的工作负载呢?

KubeCraftAdmin的灵感来自于MakeCode for Minecraft 让学习编码变得超级有趣[2],通过WebSocket Server,通过编程方式操纵Minecraft中的世界。

项目用不同的围栏(每个namespace一个)中的不同动物填充。每个动物对应于k8s集群中的一个资源。

  • 猪是Pods

  • 牛是ReplicaSets

  • 鸡是Services

  • 马是Deployments

连接到KubeCraft Admin WS,就可以连接到指定的k8s集群。通过动物反映集群资源。当资源被删除时,动物会死亡。相反地,在Minecraft中杀死动物会删除相应的资源。

KubeCraftAdmin

KubeCraftAdmin: 冒险家的管理工具

你会杀了这个看似无辜的服务吗?

这个项目允许你通过Minecraft做基本的Kubernetes管理。

如果想实操,需要以下条件才行:

  • 一个k8s集群

  • 在集群内部或外部运行kubecraft容器,需要可以连接到k8s集群和Minecraft客户端

  • Minecraft基础版

运行KubeCraftAdmin

运行容器,设置端口映射、挂载.kube目录。容器内部监听8000端口。可以使用环境变量namespaces从集群中指定1到4个名称空间。

docker run --name kca -d -p 8000:8000 -v /root/.kube:/.kube -e namespaces=kca1,kca2 erjadi/kubecraftadmin
# docker ps -f name=kca
CONTAINER ID   IMAGE                   COMMAND       CREATED          STATUS          PORTS                                       NAMES
58ee6241048b   erjadi/kubecraftadmin   "/app/main"   30 seconds ago   Up 29 seconds   0.0.0.0:8000->8000/tcp, :::8000->8000/tcp   kca
  1. 启动 Minecraft 基础版

  2. 打开Activate Cheats选项,创建一个新的世界

  1. 当你用下面的命令登录到服务器后,你应该会看到KubeCraftAdmin的闪屏界面。在游戏开始时,需要获得一些道具(刀剑、TNT、火石)。

/connect 10.0.0.1:8000/ws
  1. 找一个区域生成kubecraft围栏。输入init生成结构。

  2. 最后,在beacon[3]上激活集群的连接。

  3. 到此为止,你的围栏中应该填充一些动物(k8s资源)。

技术细节

KubeCraftAdmin是用Golang写的。它建立在Sandertv[4]的MCWSS[5]项目之上。

这个项目在Minecraft基础版和教育版上,利用了Websocket Server[6]的功能。WS连接是一个Minecraft客户端连接,所有的动作都是通过客户端执行的。Server/Local不受影响,也不受此项目的控制。这意味着我们需要激活作弊机制,以便能够生成[7]或杀死[8]实体。

可以在kubecraftadmin.go[9]中找到的主要流程。

简化的KubeCraftAdmin连接到Kubernetes集群,生成所需的实体,并启动一个无尽的循环函数LoopReconcile。每秒钟它都会启动一个名为ReconcileKubetoMC的同步函数,它的基本内容是:

  • 在Minecraft中枚举实体

  • 在Kubernetes中枚举资源

  • 在Minecraft生成或杀死差异

对于反向同步,依赖于mobEvent,它触发ReconcileMCtoKubeMob的执行。基本上执行相同的检查,但这次是将Minecraft实体作为标准,并删除Kubernetes相应的资源。

以下附上视频,供您鉴赏,求个关注、求个赞

一个有趣的Go项目,3D界面管理k8s集群,真好玩!相关推荐

  1. config kubectl_使用kubectl管理k8s集群(三十)

    前言 Foreword 在搭建k8s集群之前,我们需要先了解下kubectl的使用,以便在集群部署出现问题时进行检查和处理.命令和语法记不住没有关系,但是请记住主要的语法和命令以及帮助命令的使用. 在 ...

  2. 使用kubectl管理k8s集群(三十)

    前言 Foreword 在搭建k8s集群之前,我们需要先了解下kubectl的使用,以便在集群部署出现问题时进行检查和处理.命令和语法记不住没有关系,但是请记住主要的语法和命令以及帮助命令的使用. 在 ...

  3. delete kubectl pod_使用kubectl管理k8s集群(三十)

    原标题:使用kubectl管理k8s集群(三十) 前言 Foreword 在搭建k8s集群之前,我们需要先了解下kubectl的使用,以便在集群部署出现问题时进行检查和处理.命令和语法记不住没有关系, ...

  4. 在线安装rancher2.4管理K8S集群并部署服务

    条件: 1. 准备至少3台机器: 2. 三台机器需要有网络: 3. 安装rancher和K8S集群: # master节点 [root@localhost ~]# hostnamectl set-ho ...

  5. 远程连接管理 k8s 集群

    文章目录 复制 config 小问题 一 二 复制 config   在使用 kubeadm 初始化完集群之后,一般都会有一下提示语句: To start using your cluster, yo ...

  6. 使用DashBoard管理k8s集群

    一.DashBoard 之前在kubernetes中完成的所有操作都是通过命令行工具kubectl完成的.其实,为了提供更丰富的用户体验,kubernetes还开发了一个基于web的用户界面(Dash ...

  7. K9s 使用教程:如何高效管理 Kubernetes 集群

    文章首发于个人公众号:「阿拉平平」 之前我向大家介绍过一款 K8s 的 IDE:Lens.通过图形界面,我们可以很方便地管理多个集群.不过有的小伙伴可能更习惯使用 kubectl 去管理集群,所以今天 ...

  8. 强大多云混合多K8S集群管理平台Rancher入门实战

    文章目录 概述 定义 为何使用 其他产品 安装 简述 规划 基础环境 Docker安装 Rancher安装 创建用户 创建集群 添加Node节点 配置kubectl 创建项目和名称空间 发布应用 偏好 ...

  9. 三层架构项目如何发布_以k8s集群管理为例,大牛教你如何设计优秀项目架构

    架构设计一直是技术人的关注热点,如何设计一个更优的架构对于实际的业务来说至关重要.本文腾讯云专家将从自身从事的一个k8s集群管理项目为例,重点剖析在项目开发过程中的三次架构演进历程,即针对项目最早版本 ...

最新文章

  1. Python 字典创建、更新、按键值排序、取最大键值对等操作
  2. java线程池的概念_Java线程池的基本概念以及生命周期
  3. 文本协议与二进制协议
  4. 2019CCPC网络预选赛 八道签到题题解
  5. 中国传媒大学计算机学院夏令营,中国传媒大学夏令营
  6. C语言函数如何返回字符串
  7. python通用权限管理框架图_PyCasbin: 支持 ACL、RBAC、ABAC 多种模型的 Python 权限管理框架...
  8. linux命令行中的大括号,linux命令行学习(19):花括号扩展(brace expansion)
  9. DoIP协议:通用DoIP首部否定确认码02和03的区别
  10. 如何可以用cad迷你家装v2018
  11. Arm Compiler 5 在 Keil MDK 5.37中不可用
  12. MacOS下好用的截图软件snip
  13. 依赖计算机英语作文,2011年高考英语卷写作表达题目范文汇总(39):过度依赖电脑的弊端...
  14. atol的实现【转】
  15. 2021年塔式起重机司机找答案及塔式起重机司机模拟考试软件
  16. 挥别2022再战2023 | 平行云“逆势增长”与“顺势而为”
  17. [ 英语 ] 马斯克抱水槽“入主”推特总部中那句 Let that sink in 到底是什么梗?
  18. 如何打开安卓模拟器里的开发者选项
  19. jkd动态代理源码分析
  20. Linux命令大全总结(看这一篇就够了)

热门文章

  1. 学习Java,容易被你忽略的小细节(2)
  2. SBuild 0.1.4 发布,基于 Scala 的构建系统
  3. 图片处理--熔铸特效
  4. eclipse 汉化教程(语言包)
  5. append()与extend()
  6. 服务器内存型号与频率,一张图看懂如何选择DDR4内存的频率和容量
  7. WCF从理论到实践(4):路在何方
  8. Integer源码解析
  9. Robot Framework 教程 (3) - Resource及关键字 的使用
  10. NOIP2012模拟试题【奶牛晒衣服】