Kubernetes 上的 Minecraft:开发平台示例
我已经好几年没玩过 Minecraft 了,但最近我发现自己很想重新玩一遍。但在初创公司工作意味着你没有太多时间进行这类活动。当然,我需要一个完全合理的工作借口来实现这个愿望。在研究开发者平台时,我偶然发现了一些用于部署 Minecraft 服务器的 Helm Chart。太棒了!
但实际上,它们的制作精良让我惊叹不已。我知道,只要稍加努力,就能用它们完美地展现开发者平台的魅力。
在这篇文章中,我将引导您如何在Kubernetes集群上运行 Minecraft 服务器,连接到服务器,并以有趣的方式解释优秀开发者平台的品质!
另外,写这篇博文也是在工作时玩一会儿 Minecraft 的好借口,所以就是这样……🤷♂️
支持我们🙏
我们知道 Kubernetes 的使用并非易事。因此,我们创建了 Cyclops,一个用于在 Kubernetes 上构建开发者平台的开源框架。它能够抽象化 Kubernetes 的复杂性,并通过可定制的 UI 部署和管理您的应用程序,满足您的需求。
我们正在将 Cyclops 开发为一个开源项目。如果您有兴趣尝试一下,可以参考我们代码库中的快速入门指南。如果您喜欢,请给我们一个 star ⭐ 来表示您的支持。
Kubernetes 上的 Minecraft
要完成本教程,你需要两样东西:一个 Kubernetes 集群和一个 Minecraft 账号(我从来没想过这两个会成为博客的必备条件😅)。即使没有 Minecraft 账号,你也可以继续学习,但那样的话,你只会启动服务器,无法真正玩游戏。
我将 Minikube 用于我的 Kubernetes 集群,并且它运行良好,您可以在这里查看如何自行设置它。
Minecraft Helm 图表
这其中的大部分艰苦工作并非我所为,荣耀属于Geoff Bourne。我偶然发现了他的minecraft-server-charts仓库,所以就尝试了一下。
虽然您可以使用 Geoff 创建的 Helm 图表,它可以正常工作,但我想强调我的观点,所以我对其进行了values.schema.json
一点调整 - 您可以在这里找到我的版本。
独眼巨人
下一步是设置 Cyclops。Cyclops允许您导入这些 Helm 图表,立即获得开发者平台!
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
片刻之后(一旦启动并运行),使用以下命令在localhost:3000上访问它:
kubectl port-forward svc/cyclops-ui 3000:3000 -n cyclops
现在您已经设置好了 Cyclops 实例,请将 Helm 图表作为模板导入到Templates
选项卡中。
为什么它是一个好的开发者平台?
导入模板后,前往Modules
“新建”选项卡并创建一个新模块。创建模块的第一步是选择模板。请选择上一步导入的 Minecraft 模板。
Cyclops 将为您提供一个简单的 UI和一系列用于部署 Minecraft 服务器的选项。这些选项之前都在 Helm chart 中定义过!
我已经很久没玩 Minecraft 了,但一切都被抽象化,并被清晰地描述出来。我可以直接设置服务器,无需费心研究这些选项的含义,还能快速部署我的 Minecraft 服务器!
虽然我不知道如何通过开发者平台自行设置这些东西,但这很容易。你可以想象一下,与其设置下界区域并生成结构,不如将它们作为应用程序的功能开关,以便随时切换。
或者,您不必选择难度,而是可以选择应用程序的资源需求,可以是“小”、“中”或“大”,而不必知道实际的 CPU 或内存量,也不会对其进行错误配置。
但幕后发生的事情比这里实际展示的要多。
有些内容不应该由我编辑,而应该由更精通 Kubernetes 的人编辑。在这种情况下,这些选项会被排除在 UI 之外。例如,你replicaCount
在 UI 中找不到某个设置,但如果你深入研究values.yaml
,可以找到以下部分:
# ### WARNING ###
# Minecraft is not horizontally scalable, adjusting
# this will most likely break your setup.
# ### WARNING ###
replicaCount: 1
这就是我说这是一个优秀开发者平台的例子。我可以指定一些对我来说重要的事情(比如难度和服务器设置),但仍然由一个了解基础设施的人掌控。这个人负责创建 UI、创建验证,并定义哪些操作是我可以接受的。
一旦您正确设置(并通过切换接受 Minecraft EULA),只需单击Deploy
,Cyclops 就会处理剩下的事情。
我不仅能够配置并部署这些选项,还能直观地看到集群中运行的结果。模板中从未提及“部署”或“服务”(或者“Secrets”),这些资源都是使用模板自动创建的。
但是技术话题已经讨论得足够多了;让我们来玩一下 Minecraft 吧!
最后一步——玩!
现在您需要做的就是等待它部署(当部署变为绿色时您就知道它已准备就绪)然后公开服务:
kubectl port-forward svc/<module-name>-minecraft 3001:25565
现在启动你的 Minecraft 并登录你的账户。点击“多人游戏”并添加服务器。随意命名服务器,并将服务器地址填写为localhost:3001
。
就是这样,你可以出发了!
告诉你的老板你正在研究开发平台
Cyclops 是一个用于构建开发平台的开源框架,高度灵活;Minecraft 只是我今天想要展示的一个有趣的例子。Cyclops 附带了许多预定义模板,但您也可以导入自己的 Helm 图表来获得动态渲染的 UI。快来尝试一下,并告诉我们您的想法!
如果您有任何像这样的酷炫 Helm 图表的古怪示例,请在评论中链接它们,或在我们的 Discord 服务器中与我们和我们的社区分享👾
这是您在工作时玩 Minecraft 的理由,现在尽情享受吧!
文章来源:https://dev.to/cyclops-ui/minecraft-on-kubernetes-a-dev-platform-example-nd4