微软 2015 年收购 Minecraft 之后不久开源了一个项目叫 Dockercraft[1],这个项目当时看起来非常有趣,通过 Dockercraft[2],玩家可以在 Minecraft 中启动或停止一个 Docker 容器,而 Docker 容器会以一个 N*N 的方块房子的方式显示在玩家面前,每一栋房子都代表一个 Docker 容器。

房子的外面挂着显示容器信息的看板,包括容器的名称、正在运行的进程、CPU 与内存的使用率等信息。

房子里面是管理容器的开关,扳动墙上的开关可以停止和启动容器,这对于码农来说是一个非常有趣的服务器。

我寻思着,既然有了 Dockercraft,怎么能没有 Kubecraft 呢?Google 搜了下还真有,项目名字正好就叫 Kubecraft[3]。它的功能和 Dockercraft 类似,可以管理 Kubernetes 集群中的容器,每一个房子代表一个 Pod,房子里面有开关可以销毁 Pod,真是太好玩了(太无聊了......)。

官方仓库[4]给的部署方式是用 Docker 跑的,命令如下:

$ docker run -t -d -i -p 25565:25565 \
--name kubecraft \
-e KUBE_CFG_FILE=/etc/kubeconfig \
-v ~/.kube/config:/etc/kubeconfig \
stevesloka/kubecraft

如果想部署在 Kubernetes 中,可以参考下面的部署清单:

apiVersion: apps/v1
kind: Deployment
metadata:name: kubecraftlabels:app: kubecraft
spec:replicas: 1selector:matchLabels:app: kubecrafttemplate:metadata:labels:app: kubecraftspec:affinity:podAntiAffinity:preferredDuringSchedulingIgnoredDuringExecution:- podAffinityTerm:labelSelector:matchExpressions:- key: appoperator: Invalues:- kubecrafttopologyKey: kubernetes.io/hostnameweight: 1tolerations:- key: node-role.kubernetes.io/ingressoperator: Existseffect: NoSchedulecontainers:- name: kubecraftimage: stevesloka/kubecrafttty: truestdin: trueenv:- name: KUBE_CFG_FILEvalue: /etc/kubeconfigports:- containerPort: 25565protocol: TCPvolumeMounts:- mountPath: /etc/kubeconfigsubPath: kubeconfigname: kubeconfigvolumes:- name: kubeconfigconfigMap:name: kubeconfig
---
apiVersion: v1
kind: Service
metadata:name: kubecraftlabels:app: kubecraft
spec:selector:app: kubecraftports:- protocol: TCPname: httpport: 25565targetPort: 25565

一定要加上 tty: true 和 stdin:true,不然容器无法启动!

你还需要先创建一个 Configmap 来保存 kubeconfig,例如:

$ kubectl create cm kubeconfig --from-file=/root/.kube/config

然后就可以愉快地部署了。

除了 Kubecraft 之外,还有一个项目叫 KubeCraftAdmin,功能上并没有什么太大的差异,只是每一个动物代表一个 Pod,你只要干掉一只鸡????,Kubernetes 中的 Pod 就被干死了,刺不刺激?

最后,如果你对该项目感兴趣,公众号后台回复 kubecraftadmin 即可获取 KubeCraftAdmin 项目地址。

参考资料

[1]

Dockercraft: https://github.com/docker/dockercraft

[2]

Dockercraft: https://github.com/docker/dockercraft

[3]

Kubecraft: https://github.com/stevesloka/kubecraft

[4]

官方仓库: https://github.com/stevesloka/kubecraft

往期推荐

阿里云网盘,开放申请啦!非会员下载 10MB/s!有图有真相!

面试:说说你对 HashMap 的认识?

解决Maven依赖冲突的好帮手,这款IDEA插件了解一下?

你的 Redis 为什么变慢了?

Java程序员必备的11大IntelliJ插件

如果MySQL事务中发生了网络异常?

云原生是一种信仰 ????

码关注公众号

后台回复◉k8s◉获取史上最方便快捷的 Kubernetes 高可用部署工具,只需一条命令,连 ssh 都不需要!

推荐加入

最近热门内容回顾   #技术人系列

靠,上班打游戏!不,我只是在Minecraft里管理Kubernetes...相关推荐

  1. 监控网络行为——公务员上班玩游戏

    网络和计算机技术的发展,几乎已经深入到我们国家才每一个角落, 如果离开网络完全无法运行.公务员是国家政府的代表,其网络行为直接影响政府形象.网络监控软件,监控网络行为很有必要. 随着互联网的发展,不少 ...

  2. java游戏快捷存档_《minecraft》JAVA存档

    这是一个<minecraft>JAVA存档,<我的世界>没有边界(地图会动态增长),没有结局,也没有等级和分数.虽然有怪物等危险,不过在游戏中生存下去通常并不难.即便死亡,玩家 ...

  3. 从别人库里拷贝的游戏如何再自己的库里显示

    从别人库里拷贝的游戏如何再自己的库里显示 CSGO,从别人的库里拷贝到U盘之后,打开自己本地的SteamLibrary文件夹,然后\SteamLibrary\steamapps\common将文件粘贴 ...

  4. 上班玩游戏被抓--观察者模式

    [转自http://www.cnblogs.com/beniao/archive/2008/05/11/1191820.html]  0点过了.可还没睡意,可能是平时都是2点过才睡觉习惯了吧.不知道干 ...

  5. 完了,BBQ了。上班打游戏 ,被 大BOSS发现了。

    你们遇到过这种情况吗?

  6. 对于员工上班时间在电脑上炒股,玩游戏,开小差,管理者应该怎么管理呢?

    员工在日常办公中离不开计算机的使用,员工在进行炒股.下载网络游戏或者视频的时候,也将计算机外网至于不安全的环境中,员工所进行的一系列不规范上网行为给计算机和企业带来如下烦恼: 浏览不安全网站,打开不安 ...

  7. 游戏性能优化技术干货分享——内存管理

    项目的性能优化主要围绕CPU.GPU和内存三大方面进行.接上期CPU优化专讲,我们本期和大家分享内存方面的优化心得. 无论是游戏还是VR应用,内存管理都是其研发阶段的重中之重. 然而,在我们测评过的大 ...

  8. 3D游戏引擎中常见的三维场景管理方法

    对于一个有很多物体的3D场景来说,渲染这个场景最简单的方式就是用一个List将这些物体进行存储,并送入GPU进行渲染.当然,这种做法在效率上来说是相当低下的,因为真正需要渲染的物体应该是视椎体内的物体 ...

  9. 【Unity】U3D TD游戏制作实例(三)相机管理器、生成敌人优化、敌人血槽小组件

    文章目录 相机管理器 调整相机 敌人类优化 融合导航测试代码 敌人移动速度 销毁对象 加载敌人配置 敌人生成方式优化 血槽组件 相机管理器 调整相机 首先将主相机调整为正交镜头,这样可以防止模型畸变. ...

最新文章

  1. mysql getconnection 如何关闭连接_【MySQL】使用连接池获取Connection执行sql以及mybatis事务注意事项...
  2. python-深浅copy-18
  3. python七夕快乐_python编写简单抽奖系统
  4. 如何扩大临linux零时空间,手把手教你如何扩充linux系统空间
  5. CreateInstall5.7.2 帮助文档翻译
  6. 神策用户画像 2 大功能:千人千面,一人千面,一次给你
  7. keybd_event跟SendMessage,PostMessage模拟键盘消息的区别 z
  8. 深入理解重要的编程模型
  9. matlab主程序和子函数不在一个文件夹下,怎么调用?
  10. java css路径_java web开发中CSS路径有问题吗,运行jsp文件为什么找不到css文件?...
  11. docker mysql8
  12. nlp基础—10.结巴分词的应用及底层原理剖析
  13. 好的网站收藏---长期更新---长期更新---长期更新---长期更新--
  14. C#【必备技能篇】Win10 查看 DLL 中的函数
  15. 微信小程序如何测试?
  16. 聚宽API获取沪深300股票
  17. 小丁在美国的惬意生活 日常学学英语吃吃BBQ-猎豹体育网
  18. 除法器的实现(恢复余数、不恢复余数、级数展开、Newton-Raphson)
  19. 互联网APP监控即时报警解决初步方案
  20. 工信部通报今年首批问题App 当当、1药网私自收集个人信息 被通报的16款App名单

热门文章

  1. 用SVN下载编译Spring3.2.4源码导入eclipse
  2. python 创建空文件的方法
  3. linux make 命令行 定义宏(-D)传递给C源代码 简介
  4. mysql top 语句简介
  5. linux yum install 与 yum groupinstall 区别
  6. python3 redis 设置连接超时
  7. centos7挂载windows共享文件夹
  8. VC 利用DLL共享区间在进程间共享数据及进程间广播消息
  9. Linux C编程--进程介绍3--进程终止和等待
  10. Android开发--AsyncTask异步任务(二)