日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
在Kubernetes上運(yùn)行我的世界

在 Kubernetes 上運(yùn)行我的世界

作者:張曉輝 2023-01-26 11:56:31

云計(jì)算

云原生 決定將服務(wù)器部署在 Azure 上,開一個(gè) 8c16g 的虛擬機(jī)并安裝 K3S。數(shù)據(jù)呢,通過 blog-csi-driver 持久化存儲在 Azure 的 Blob Storage 上。

瓊山網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,瓊山網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為瓊山成百上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請找那個(gè)售后服務(wù)好的瓊山做網(wǎng)站的公司定做!

假期給小朋友裝上了叨叨許久的 Minecraft(我的世界),為了體驗(yàn)安裝的是 開源啟動(dòng)器 HMCL。其實(shí)這游戲我也關(guān)注比較久了,不過感覺太耗時(shí)間。但被小朋友拉上一起玩,便研究了下自建服務(wù)器。GitHub 發(fā)現(xiàn)已經(jīng)有人做好了 Minecraft 服務(wù)端容器鏡像,先是在 HomeLab 上用 Docker 部署,通過多人連線就能玩起來了。

由于不會玩幾下被小朋友給打死,后來才發(fā)現(xiàn)還有“和平模式”。無聊轉(zhuǎn)而研究下如何在公有云上部署:

  • 我的 HomeLab 常年運(yùn)行,由于沒有重要的數(shù)據(jù),不管是對硬件穩(wěn)定性和數(shù)據(jù)備份都沒有投入,擔(dān)心游戲數(shù)據(jù)丟失被埋怨。放在公有云上使用公有云的對象存儲,避免數(shù)據(jù)丟失
  • 偶爾外出時(shí)玩的話,還需要 VPN 連回家才能玩
  • 他有朋友一起玩時(shí)還能方便聯(lián)機(jī)
  • 最主要的原因還是去年加入微軟 MVP 時(shí),有送 Azure 的 credit,不用實(shí)屬浪費(fèi)

基于上面的原因,決定將服務(wù)器部署在 Azure 上,開一個(gè) 8c16g 的虛擬機(jī)并安裝 k3s。數(shù)據(jù)呢,通過 blog-csi-driver 持久化存儲在 Azure 的 Blob Storage 上。

開始吧!

安裝 k3s

運(yùn)行下面的命令進(jìn)行安裝,1.23 版本即可。

export INSTALL_K3S_VERSION=v1.23.8+k3s2
curl -sfL https://get.k3s.io | sh -s - --disable traefik --write-kubeconfig-mode 644 --write-kubeconfig ~/.kube/config

k3s 安裝之后,需要安裝 blob storage 的 CSI 驅(qū)動(dòng)。根據(jù) 文檔說明 驅(qū)動(dòng)要使用 v0.9.0 以上的版本,才能使用 存儲賬戶 做動(dòng)態(tài)配置。

安裝 CSI 驅(qū)動(dòng)

curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/v1.19.0/deploy/install-driver.sh | bash -s v1.19.0 blobfuse-proxy --

創(chuàng)建 StorageClass

先登錄到 Azure Portal 在 存儲賬戶 中創(chuàng)建賬戶,記得區(qū)域的選擇和虛擬機(jī)相同;網(wǎng)絡(luò)權(quán)限中選擇只允許虛擬網(wǎng)絡(luò)的訪問。創(chuàng)建完成后,在賬戶的 訪問秘鑰 中可以獲取到 key。

執(zhí)行下面的命令,使用前面的賬戶名和 key 創(chuàng)建 secert。

kubectl create secret generic azure-secret --from-literal azurestorageaccountname=[ACCOUNT HERE] --from-literal azurestorageaccountkey=[KEY HERE] --type=Opaque

接下來就是使用該 secret 創(chuàng)建 StorageClass。

kubectl apply -f - <---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: blob-fuse
provisioner: blob.csi.azure.com
allowVolumeExpansion: true
parameters:
csi.storage.k8s.io/provisioner-secret-name: azure-secret
csi.storage.k8s.io/provisioner-secret-namespace: default
csi.storage.k8s.io/node-stage-secret-name: azure-secret
csi.storage.k8s.io/node-stage-secret-namespace: default
EOF

創(chuàng)建 PVC

有了 StorageClass 之后,就可以創(chuàng)建 PersistentVolumeClaim 了,指定使用上面的 StorageClass ??blob-fuse??。

kubectl apply -f - <apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: minecraft-pvc
spec:
storageClassName: blob-fuse
accessModes:
- ReadWriteMany
resources:
requests:
storage: 100Gi
EOF

部署 Minecraft 服務(wù)器

使用 Deployment 進(jìn)行部署,并創(chuàng)建 NodePort Service。鏡像使用 ??itzg/minecraft-server:java17??,相關(guān)的配置可以參考 官方的文檔(我怕再被打,啟用了和平模式)。

kubectl apply -f - <apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: minecraft
name: minecraft
spec:
replicas: 1
selector:
matchLabels:
app: minecraft
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
app: minecraft
spec:
containers:
- image: itzg/minecraft-server:java17
name: minecraft-server
env:
- name: EULA
value: "TRUE"
- name: ONLINE_MODE
value: "FALSE"
- name: DIFFICULTY
value: peaceful
- name: PVP
value: "false"
- name: UID
value: "0"
- name: GID
value: "0"
- name: MEMORY
value: "4G"
resources: {}
ports:
- containerPort: 25565
protocol: TCP
volumeMounts:
- name: persistent-storage
mountPath: /data
volumes:
- name: persistent-storage
persistentVolumeClaim:
claimName: minecraft-pvc
---
apiVersion: v1
kind: Service
metadata:
labels:
app: minecraft
name: minecraft
spec:
ports:
- port: 25565
protocol: TCP
targetPort: 25565
selector:
app: minecraft
type: NodePort
EOF

測試

啟動(dòng)客戶端,在多人游戲中添加服務(wù)器:地址是虛擬機(jī)的公共 IP,端口是 Service 的 NodePort。

self-hosting-minecraft

接下來就可以愉快的玩耍了。


網(wǎng)站題目:在Kubernetes上運(yùn)行我的世界
網(wǎng)站網(wǎng)址:http://m.5511xx.com/article/dhicsjs.html