icon

Sealos,在云桌面中运行分布式应用程序,像使用个人电脑一样使用云

icon

去看看👀

icon

扫码加入微信群,和云原生大佬们一起探讨云原生和不可描述的事情!

wechat qr code
 
今日天气
 
舔狗日记

在 Minecraft 中管理 Kubernetes 集群
  1. 博客/

在 Minecraft 中管理 Kubernetes 集群

·721 字·2 分钟· · ·
云原生 Kubernetes minecraft
米开朗基杨
作者
米开朗基杨
云原生搬砖师 & Sealos 开发者布道师 & FastGPT 熟练工
gptgod
FastGPT
Laf
Contact me

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

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

图片描述: 20201008221254.png

图片描述: 20201008222053.png

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

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

图片描述: 20201008223401.jpg

图片描述: 20201008223421.jpg

图片描述: 20201008223441.jpg

图片描述: 20201008223513.jpg

官方仓库给的部署方式是用 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: kubecraft
  labels:
    app: kubecraft
spec:
  replicas: 1 
  selector:
    matchLabels:
      app: kubecraft
  template:
    metadata:
      labels:
        app: kubecraft
    spec:
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - podAffinityTerm:
              labelSelector:
                matchExpressions:
                - key: app
                  operator: In
                  values:
                  - kubecraft 
              topologyKey: kubernetes.io/hostname
            weight: 1
      tolerations:
      - key: node-role.kubernetes.io/ingress
        operator: Exists
        effect: NoSchedule
      containers:
      - name: kubecraft
        image: stevesloka/kubecraft 
        tty: true
        stdin: true
        env:
        - name: KUBE_CFG_FILE 
          value: /etc/kubeconfig
        ports:
        - containerPort: 25565 
          protocol: TCP
        volumeMounts:
        - mountPath: /etc/kubeconfig
          subPath: kubeconfig
          name: kubeconfig
      volumes:
      - name: kubeconfig
        configMap:
          name: kubeconfig
---
apiVersion: v1
kind: Service
metadata:
  name: kubecraft
  labels:
    app: kubecraft
spec:
  selector:
    app: kubecraft
  ports:
    - protocol: TCP
      name: http
      port: 25565
      targetPort: 25565

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

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

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

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

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

图片描述: 20201008224856.png

本视频一切权利归 bilibili原作者所有。如果觉得好,请点击跳转到 bilibili 给予支持。
-------他日江湖相逢 再当杯酒言欢-------

相关文章

Kubernetes 的层级命名空间介绍
·1890 字·4 分钟·
云原生 Kubernetes
Kubernetes 教程:根据 PID 获取 Pod 名称
·1439 字·3 分钟·
云原生 Kubernetes
Lens —— Kubernetes 桌面客户端
·515 字·2 分钟·
云原生 Kubernetes
KubeSphere 安装教程
·2133 字·5 分钟·
云原生 Kubernetes
Kubeman 使用指南
·1274 字·3 分钟·
云原生 Kubernetes
云原生周报:第 3 期
·3784 字·8 分钟·
云原生 Kubernetes

公众号二维码