我上次玩《我的世界》已經有好幾年了,但最近,我發現自己很想重新玩。當然,我需要一個完全有效的工作藉口才能實現這一目標。在研究開發者平台時,我偶然發現了一些旨在部署 Minecraft 伺服器的 Helm 圖表。大獎!
但事實上,我對它們的製作精良感到驚訝。透過一些工作,我知道我可以使用它們來展示讓開發者平台真正閃耀的完美範例。
在這篇文章中,我將引導您了解如何在Kubernetes叢集上執行 Minecraft 伺服器、連接到伺服器,並以有趣的方式解釋優秀開發者平台的品質!
另外,寫這篇部落格文章是在工作中玩一點 Minecraft 的一個很好的藉口,所以就是這樣…🤷♂️
我們知道 Kubernetes 可能很困難。這就是我們建立 Cyclops 的原因,這是一個用於在 Kubernetes 上建立開發人員平台的開源框架。抽象化 Kubernetes 的複雜性,並透過可滿足您需求的可自訂 UI 來部署和管理您的應用程式。
我們正在將 Cyclops 開發為開源專案。如果您熱衷於嘗試一下,我們的儲存庫中提供了快速入門指南。如果您喜歡所看到的內容,請考慮給我們一顆星來表示您的支持⭐
>
為了能夠學習本教程,您需要兩件事:一個 Kubernetes 叢集和一個 Minecraft 帳戶(從未想過這兩個會是部落格的要求😅)。您可以在沒有 Minecraft 帳戶的情況下繼續操作,但隨後您將只是啟動伺服器,而無法實際玩遊戲。
我將 Minikube 用於我的 Kubernetes 集群,並且執行良好,您可以在此處查看如何自行設定。
為此,大部分的辛苦工作都不是我做的,那份榮耀屬於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 圖表中定義的!
現在我已經很久沒有玩《我的世界》了,但一切都被抽象化了,描述得很工整。我可以選擇伺服器的設置,而無需研究這些選項代表什麼,並立即部署我的 Minecraft 伺服器!
雖然我不知道如何透過開發者平台自己設定這些東西,但這只是小菜一碟。您可以想像,這些可以是可以打開或關閉的應用程式的功能標誌,而不是設定下界區域和生成結構。
或者,您可以選擇應用程式的資源需求,而不是選擇難度,可以是“小”、“中”或“大”,而不必知道實際有多少 CPU 或內存,沒有多少 CPU 或記憶體。 。
但幕後發生的事情比這裡實際顯示的要多。
有些東西不應該由我來編輯,而應該由更擅長 Kubernetes 的人來編輯。在這種情況下,這些選項將被排除在 UI 之外。例如,您不會在 UI 中找到replicaCount
設置,但是如果您深入研究values.yaml
,您可以找到此部分:
# ### WARNING ###
# Minecraft is not horizontally scalable, adjusting
# this will most likely break your setup.
# ### WARNING ###
replicaCount: 1
這就是我說這是一個優秀開發者平台的例子的意思。我可以指定對我來說重要的事情(例如我的伺服器的難度和設定),但了解基礎設施的人仍然可以控制。該人建立一個 UI,建立驗證並定義我可以接受的混亂內容。
正確設定後(並透過開啟它接受 Minecraft EULA),只需點擊Deploy
,Cyclops 就會處理剩下的事情。
我不僅能夠配置這些選項並部署它們,而且還可以直觀地展示叢集中執行的結果。從來沒有提到過“部署”或“服務”(或“秘密”),但這些資源是使用模板為我建立的。
但這已經足夠了。讓我們玩一些我的世界吧!
現在您需要做的就是等待它被部署(當部署變成綠色時您就知道它已經準備好了),然後公開服務:
kubectl port-forward svc/<module-name>-minecraft 3001:25565
現在啟動您的 Minecraft 並登入您的帳戶。點擊多人遊戲並加入伺服器。將伺服器命名為您想要的名稱並將伺服器位址設為localhost:3001
。
就是這樣,你應該可以走了!
Cyclops作為建構開發平台的開源框架,具有高度的彈性; 《我的世界》只是我今天想要展示的一個有趣的例子。 Cyclops 附帶了一堆預先定義的模板,但您可以匯入自己的 Helm 圖表來獲得動態渲染的 UI。嘗試一下,讓我們知道您的想法!
如果您有任何像這樣酷炫的 Helm 圖表的怪異示例,請在評論中連結它們,或在我們的Discord 伺服器中與我們和我們的社區分享 👾
這是您在工作中玩 Minecraft 的藉口,現在就開始享受吧!
>
原文出處:https://dev.to/cyclops-ui/minecraft-on-kubernetes-a-dev-platform-example-nd4