日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

一个有趣的Go项目,3D界面管理k8s集群,真好玩!

發(fā)布時(shí)間:2023/12/4 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个有趣的Go项目,3D界面管理k8s集群,真好玩! 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

大家好,我是小碗湯,今天分享一個(gè)用Golang開(kāi)發(fā),很好玩的工具`KubeCraftAdmin`[1]用Minecraft方式管理k8s的工具,感興趣的兄弟不妨玩一玩。文末有視頻,供您鑒賞~

Minecraft:我的世界,是微軟旗下的沙盒游戲。玩家可以在一個(gè)3D世界內(nèi)與方塊進(jìn)行交互。這是一款廣受歡迎的游戲,玩家可以用數(shù)字塊構(gòu)建夢(mèng)幻般的虛擬世界

為什么沒(méi)有一個(gè)身歷其境的3D沙盒用戶界面,來(lái)管理容器編排中的工作負(fù)載呢?

KubeCraftAdmin的靈感來(lái)自于MakeCode for Minecraft 讓學(xué)習(xí)編碼變得超級(jí)有趣[2],通過(guò)WebSocket Server,通過(guò)編程方式操縱Minecraft中的世界。

項(xiàng)目用不同的圍欄(每個(gè)namespace一個(gè))中的不同動(dòng)物填充。每個(gè)動(dòng)物對(duì)應(yīng)于k8s集群中的一個(gè)資源。

  • 豬是Pods

  • 牛是ReplicaSets

  • 雞是Services

  • 馬是Deployments

連接到KubeCraft Admin WS,就可以連接到指定的k8s集群。通過(guò)動(dòng)物反映集群資源。當(dāng)資源被刪除時(shí),動(dòng)物會(huì)死亡。相反地,在Minecraft中殺死動(dòng)物會(huì)刪除相應(yīng)的資源。

KubeCraftAdmin

KubeCraftAdmin: 冒險(xiǎn)家的管理工具

你會(huì)殺了這個(gè)看似無(wú)辜的服務(wù)嗎?

這個(gè)項(xiàng)目允許你通過(guò)Minecraft做基本的Kubernetes管理。

如果想實(shí)操,需要以下條件才行:

  • 一個(gè)k8s集群

  • 在集群內(nèi)部或外部運(yùn)行kubecraft容器,需要可以連接到k8s集群和Minecraft客戶端

  • Minecraft基礎(chǔ)版

運(yùn)行KubeCraftAdmin

運(yùn)行容器,設(shè)置端口映射、掛載.kube目錄。容器內(nèi)部監(jiān)聽(tīng)8000端口。可以使用環(huán)境變量namespaces從集群中指定1到4個(gè)名稱空間。

docker?run?--name?kca?-d?-p?8000:8000?-v?/root/.kube:/.kube?-e?namespaces=kca1,kca2?erjadi/kubecraftadmin#?docker?ps?-f?name=kca CONTAINER?ID???IMAGE???????????????????COMMAND???????CREATED??????????STATUS??????????PORTS???????????????????????????????????????NAMES 58ee6241048b???erjadi/kubecraftadmin???"/app/main"???30?seconds?ago???Up?29?seconds???0.0.0.0:8000->8000/tcp,?:::8000->8000/tcp???kca
  • 啟動(dòng) Minecraft 基礎(chǔ)版

  • 打開(kāi)Activate Cheats選項(xiàng),創(chuàng)建一個(gè)新的世界

  • 當(dāng)你用下面的命令登錄到服務(wù)器后,你應(yīng)該會(huì)看到KubeCraftAdmin的閃屏界面。在游戲開(kāi)始時(shí),需要獲得一些道具(刀劍、TNT、火石)。

  • /connect?10.0.0.1:8000/ws
  • 找一個(gè)區(qū)域生成kubecraft圍欄。輸入init生成結(jié)構(gòu)。

  • 最后,在beacon[3]上激活集群的連接。

  • 到此為止,你的圍欄中應(yīng)該填充一些動(dòng)物(k8s資源)。

  • 技術(shù)細(xì)節(jié)

    KubeCraftAdmin是用Golang寫(xiě)的。它建立在Sandertv[4]的MCWSS[5]項(xiàng)目之上。

    這個(gè)項(xiàng)目在Minecraft基礎(chǔ)版和教育版上,利用了Websocket Server[6]的功能。WS連接是一個(gè)Minecraft客戶端連接,所有的動(dòng)作都是通過(guò)客戶端執(zhí)行的。Server/Local不受影響,也不受此項(xiàng)目的控制。這意味著我們需要激活作弊機(jī)制,以便能夠生成[7]或殺死[8]實(shí)體。

    可以在kubecraftadmin.go[9]中找到的主要流程。

    簡(jiǎn)化的KubeCraftAdmin連接到Kubernetes集群,生成所需的實(shí)體,并啟動(dòng)一個(gè)無(wú)盡的循環(huán)函數(shù)LoopReconcile。每秒鐘它都會(huì)啟動(dòng)一個(gè)名為ReconcileKubetoMC的同步函數(shù),它的基本內(nèi)容是:

    • 在Minecraft中枚舉實(shí)體

    • 在Kubernetes中枚舉資源

    • 在Minecraft生成或殺死差異

    對(duì)于反向同步,依賴于mobEvent,它觸發(fā)ReconcileMCtoKubeMob的執(zhí)行。基本上執(zhí)行相同的檢查,但這次是將Minecraft實(shí)體作為標(biāo)準(zhǔn),并刪除Kubernetes相應(yīng)的資源。

    以下附上視頻,供您鑒賞,求個(gè)關(guān)注、求個(gè)贊👍🏻可以嗎?



    本文翻譯自:https://reurl.cc/MbZXrW,版權(quán)歸原作者所有

    歡迎小伙伴們投稿原創(chuàng)文章~

    投稿格式:markdown格式的md文件

    投稿郵箱: pub@kubeinfo.cn

    參考資料

    [1]

    KubeCraftAdmin: https://github.com/erjadi/kubecraftadmin/

    [2]

    MakeCode for Minecraft 讓學(xué)習(xí)編碼變得超級(jí)有趣: https://www.microsoft.com/en-us/research/blog/code-minecraft/

    [3]

    beacon: https://minecraft.gamepedia.com/Beacon

    [4]

    Sandertv: https://github.com/Sandertv

    [5]

    MCWSS: https://github.com/Sandertv/mcwss

    [6]

    Websocket Server: https://minecraft.gamepedia.com/Commands/wsserver

    [7]

    生成: https://minecraft.gamepedia.com/Commands/summon

    [8]

    殺死: https://minecraft.gamepedia.com/Commands/kill

    [9]

    kubecraftadmin.go: /src/app/kubecraftadmin.go

    點(diǎn)個(gè)在看你最好看

    總結(jié)

    以上是生活随笔為你收集整理的一个有趣的Go项目,3D界面管理k8s集群,真好玩!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。