Kubernetes

Kubernetes上运行Minecraft:打造开发者平台的例子

本文主要是介绍Kubernetes上运行Minecraft:打造开发者平台的例子,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

我已经好几年没有玩《我的世界》了,但最近我又开始想重新玩起来了。不过在一家初创公司工作,意味着你没有太多时间去做这样的事情。自然而然,我需要一个正当的工作理由来让我玩这款游戏。在研究开发者平台的过程中,我偶然发现了一些用于部署Minecraft服务器的Helm图表。真是太走运了!

但我实际上对它们的制作精良程度感到惊讶。稍加调整,我知道我可以通过它们来展示一个完美展现开发平台亮点的例子。

在这篇文章中,我将带你一步步操作如何在你的 Kubernetes 集群上运行 Minecraft 服务器,连接到该服务器,并以有趣的方式解释优秀的开发者平台应该具备的特点!

写这篇博客也是一个很好的借口,在工作时间玩一会儿《我的世界》,所以这也算是一点小福利……🤷‍♂️

🙏支持我们一把

我们知道Kubernetes可能有点复杂。因此,我们创建了Cyclops,这是一个用于在Kubernetes上构建开发者平台的开源框架。您可以简化Kubernetes的复杂性,并通过一个自定义界面来部署和管理您的应用程序,以满足您的需求。

我们正在将Cyclops作为一个开源项目来开发。如果你有兴趣试一试,这里有一份快速入门指南,你可以直接在我们的仓库中找到。如果你喜欢这个项目,可以用点个星标⭐来表示支持。

星项目Cyclops

Support us with GH stars

在 Kubernetes 上运行 Minecraft

要完成这个教程,你需要两样东西:一个Kubernetes集群和一个Minecraft账号(真的没想到这两个东西竟然会成为要求条件 😅)。没有Minecraft账号你也可以跟着做,不过那样你就只能启动服务器,而无法真正玩游戏了。

我使用 Minikube 来运行我的 Kubernetes 集群,运行得很顺利。你可以在这里了解如何设置 Minikube:这里。

minecraft-server 我的世界服务器的图片

Minecraft 头盔图

大部分的辛苦工作不是我做的,这份荣誉归功于Geoff Bourne。我在浏览时发现了他的minecraft-server-charts项目,就很好奇想试一试。

虽然你可以使用 Geoff 创建的 Helm 图表,这些图表也可以正常工作,但我为了更好地说明我的观点,稍微调整了一下 values.schema.json,你可以在这里找到我调整过的文件 here。

独眼怪

接下来的步骤是设置Cyclops(设置Cyclops的过程)。Cyclops允许你导入这些Helm图表文件,从而立即拥有一个开发平台!

Cyclops 在你的集群里运行;只需要两个命令就可以搞定:

(注意:保持原文的标点和格式一致,特别是英文冒号翻译成中文冒号,并且保留了英文的括号解释部分。)

(去除括号内的提示后)

Cyclops 在你的集群里运行;只需要两个命令就可以搞定:

kubectl apply -f https://raw.githubusercontent.com/cyclops-ui/cyclops/v0.15.4/install/cyclops-install.yaml &&
kubectl apply -f https://raw.githubusercontent.com/cyclops-ui/cyclops/v0.15.4/install/demo-templates.yaml

运行这两个命令来部署cyclops和示例模板。

切换到全屏;退出全屏

几分钟后(等它启动了),使用以下命令访问它在localhost:3000:这个网址:localhost:3000

使用 kubectl 命令将 svc/cyclops-ui 服务的 3000 端口转发到本地的 3000 端口,并指定命名空间为 cyclops。

    kubectl port-forward svc/cyclops-ui 3000:3000 -n cyclops

点击全屏: 进入全屏模式 / 退出全屏: 退出全屏模式

现在你已经设置了Cyclops实例,需要在“Templates(模板)”选项卡中将Helm图表导入为模板。

Minecraft 模板图片

为什么说是好的开发平台?

导入模板后,进入模块标签并创建一个新的模块。首先,选择一个模板来创建模块。请选择你之前导入的Minecraft模板。

Cyclops将为你提供一个简单的用户界面,并提供多种选项来部署你的Minecraft服务器。这些选项之前在 Helm 图表中定义的。

虽然我已经很久没有玩《我的世界》了,但现在一切都变得简单明了。我可以不用研究这些选项代表什么,就能选择我的服务器设置,并快速搭建我的《我的世界》服务器!

Minecraft安装

虽然我自己不会通过开发者平台来设置这些东西,但其实很简单。你可以想象,这些功能更像是应用程序中的功能开关,而不仅仅是设置下界区域和生成结构,这些功能标志可以开启或关闭。

或者你不必选择难度等级,而是可以选择你的应用的资源需求,比如“小”、“中等”或“大”,而无需知道实际需要多少CPU或内存,也无需担心配置不当。

但幕后发生的事情远比这里显示的要多得多。

有些事情不应该由我来修改,而应该由更熟悉 Kubernetes 的人来处理。在这种情况下,这些选项在 UI 中没有。例如,你不会在 UI 中找到 replicaCount 设置,但查看 values.yaml 文件,你会发现这一部分:

    # ### 警告 ###
    # Minecraft 不是水平扩展的,调整这里很可能会破坏你的环境。
    # ### 警告 ###
    replicaCount: 1

进入全屏 退出全屏

这就是我所说的,当我提到这是一个好的开发平台时的意思。我可以指定对我重要的事情(比如我的服务器的难度等级和设置选项),但总有一个懂基础设施的人在把控。这个人会创建一个用户界面,设定验证规则,并规定我可以调整的范围。

一旦你调整好设置(并接受Minecraft的服务协议,将其打开),点击Deploy,Cyclops 就会帮你搞定剩下的。

不仅能够配置这些选项并部署它们,而且我还在我集群中运行了一个漂亮的结果可视化展示。‘部署’、‘服务’甚至‘密钥(secrets)’这些术语从未被提及,但这些资源都是通过模板自动生成的,无需我手动创建。

但是技术方面就说到这儿吧,咱们来玩玩 Minecraft 吧!

这是一张我的世界(Minecraft)中某个角色或特定场景的图片,可能与独眼巨人有关。

最后一步来了!开始玩!

现在你只需要等待它部署完成(当你看到 Deployment 变成绿色时,就知道它已经准备好了),然后发布服务。

运行以下命令来转发端口:

    kubectl port-forward svc/<module-name>-minecraft 3001:25565

全屏模式 退出全屏

现在启动你的Minecraft游戏,并登录到你的账号。点击_多人_和添加服务器。将服务器名字设为你想要的,然后将服务器地址填为localhost:3001

行了,你可以开始了!

连接服务器提示

告诉你的老板你正在研究开发平台这方面的工作

Cyclops是一个用于构建开发平台的开源框架,非常灵活;Minecraft只是一个有趣的例子。Cyclops自带了许多预定义的模板,但你可以导入你自己的Helm图表以获得动态渲染的UI。试一下,并告诉我们你的想法!

如果你有任何 很酷的 Helm 图表示例 如这些,可以在评论里分享链接,或者直接通过我们的 Discord 服务器 分享给我们和社区 &#128126;

现在可以尽情享受《我的世界》了,这里是你在工作中玩游戏的理由。

Cyclops项目

这篇关于Kubernetes上运行Minecraft:打造开发者平台的例子的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!