阿川私房教材:
學 JavaScript 前端,帶作品集去面試!

63 個專案實戰,寫出作品集,讓面試官眼前一亮!

立即開始免費試讀!

我上次玩《我的世界》已經有好幾年了,但最近,我發現自己很想重新玩。當然,我需要一個完全有效的工作藉口才能實現這一目標。在研究開發者平台時,我偶然發現了一些旨在部署 Minecraft 伺服器的 Helm 圖表。大獎!

但事實上,我對它們的製作精良感到驚訝。透過一些工作,我知道我可以使用它們來展示讓開發者平台真正閃耀的完美範例。

在這篇文章中,我將引導您了解如何在Kubernetes叢集上執行 Minecraft 伺服器連接到伺服器,並以有趣的方式解釋優秀開發者平台的品質

另外,寫這篇部落格文章是在工作中玩一點 Minecraft 的一個很好的藉口,所以就是這樣…🤷‍♂️

支持我們🙏

我們知道 Kubernetes 可能很困難。這就是我們建立 Cyclops 的原因,這是一個用於在 Kubernetes 上建立開發人員平台的開源框架。抽象化 Kubernetes 的複雜性,並透過可滿足您需求的可自訂 UI 來部署和管理您的應用程式。

我們正在將 Cyclops 開發為開源專案。如果您熱衷於嘗試一下,我們的儲存庫中提供了快速入門指南。如果您喜歡所看到的內容,請考慮給我們一顆星來表示您的支持⭐

GitHub 上的明星獨眼巨人

>

用 GH 星星支持我們

Kubernetes 上的我的世界

為了能夠學習本教程,您需要兩件事:一個 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 圖表中定義的!

現在我已經很久沒有玩《我的世界》了,但一切都被抽象化了,描述得很工整。我可以選擇伺服器的設置,而無需研究這些選項代表什麼,並立即部署我的 Minecraft 伺服器!

部署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 的藉口,現在就開始享受吧!

GitHub 上的明星獨眼巨人

>


原文出處:https://dev.to/cyclops-ui/minecraft-on-kubernetes-a-dev-platform-example-nd4


共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。

阿川私房教材:
學 JavaScript 前端,帶作品集去面試!

63 個專案實戰,寫出作品集,讓面試官眼前一亮!

立即開始免費試讀!