Kubernetes で Minecraft を実行する

Kubernetes で Minecraft を実行する

休暇中に、ずっと前から話題になっていたMinecraftを子供たちにインストールしてみました。それを体験するために、オープンソースランチャーHMCLをインストールしました。実は、このゲームには長い間注目してきましたが、時間がかかりすぎると感じています。しかし、子供たちが一緒に遊んでくれと頼んできたので、私は自分のサーバーを構築する方法を調べ始めました。 GitHub は、誰かがすでに Minecraft サーバー コンテナ イメージを作成しており、最初に Docker を使用して HomeLab にデプロイされ、その後マルチプレイヤー接続でプレイされていたことを発見しました。

遊び方がわからなかったため、数回試しただけで他の子供たちに殴り殺されてしまいました。後になって、「平和モード」というものがあることを知りました。退屈なので、パブリック クラウドにデプロイする方法を勉強しましょう。

  • 私の HomeLab は一年中稼働しています。重要なデータがないので、ハードウェアの安定性やデータのバックアップには投資していません。ゲームデータを失ったことで責められるのではないかと心配です。データ損失を回避するためにパブリッククラウドオブジェクトストレージを使用する
  • 外出中にたまにプレイする場合は、自宅でプレイするためにVPNに接続する必要があります。
  • 一緒に遊ぶことで友達とつながることもできる
  • 一番の理由は、昨年 Microsoft MVP に参加した際に Azure クレジットをいただいたので、使わないのはもったいないと思ったからです。

上記の理由から、Azure にサーバーを展開し、8c16g 仮想マシンを開いて k3s をインストールすることにしました。データは blog-csi-driver を通じて Azure Blob Storage に永続的に保存されます。

さあ始めましょう!

k3sをインストールする

バージョン 1.23 をインストールするには、次のコマンドを実行します。

エクスポート INSTALL_K3S_VERSION = v1 .23 .8 + k3s2
curl - sfL https : //.k3s.io取得します| sh - s - --disable traefik --write-kubeconfig-mode 644 --write-kubeconfig ~/.kube/config

k3s をインストールした後、BLOB ストレージ用の CSI ドライバーをインストールする必要があります。ドキュメントによると、動的構成にストレージ アカウントを使用するには、ドライバーはバージョン v0.9.0 以降を使用する必要があります。

CSIドライバーをインストールする

 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--

ストレージクラスを作成する

まず、Azure ポータルにログインし、ストレージ アカウントにアカウントを作成します。仮想マシンと同じリージョンを選択することを忘れないでください。ネットワーク権限で、仮想ネットワークへのアクセスのみを許可するように選択します。作成が完了すると、アカウントのアクセス キーからキーを取得できます。

以前のアカウント名とキーを使用して secert を作成するには、次のコマンドを実行します。

 kubectl create secret generic azure - secret --from-literal azurestorageaccountname=[アカウントをここに入力] --from-literal azurestorageaccountkey=[キーをここに入力] --type=Opaque

次のステップは、シークレットを使用して StorageClass を作成することです。

 kubectl を適用-f - << EOF
---
apiバージョン:ストレージ.k8s .io / v1
種類:ストレージクラス
メタデータ:
名前:ブロブ-ヒューズ
プロビジョナー: blob .csi .azure .com
ボリューム拡張を許可する: true
パラメータ:
csi .storage .k8s .io /プロビジョナー-シークレット-名前: azure -シークレット
csi .storage .k8s .io / provisioner - secret - namespace :デフォルト
csi .storage .k8s .io /ノード-ステージ-シークレット-名前: azure -シークレット
csi .storage .k8s .io /ノード-ステージ-シークレット-名前空間:デフォルト
終了

PVCを作成する

StorageClass が作成されたので、PersistentVolumeClaim を作成し、上記の StorageClass ​blob-fuse​​ ​ の使用を指定できます。

 kubectl を適用-f - << EOF
APIバージョン: v1
種類: PersistentVolumeClaim
メタデータ:
名前:マインクラフト- PVC
仕様:
ストレージクラス名: blob - fuse
アクセスモード:
-読み書き多数
リソース
リクエスト:
ストレージ: 100 Gi
終了

Minecraft サーバーを展開する

Deployment を使用して、NodePort サービスをデプロイおよび作成します。使用したイメージは​itzg/minecraft-server:java17​​ ​です。関連する設定については、公式ドキュメントを参照してください(また殴られるのが怖かったので、ピースフルモードを有効にしました)。

 kubectl を適用-f - << EOF
apiバージョン:アプリ/ v1
種類:デプロイメント
メタデータ:
作成タイムスタンプ: null
ラベル:
アプリ:マインクラフト
名前:マインクラフト
仕様:
レプリカ 1
セレクター:
マッチラベル:
アプリ:マインクラフト
戦略 { }
テンプレート
メタデータ:
作成タイムスタンプ: null
ラベル:
アプリ:マインクラフト
仕様:
コンテナ:
-画像: itzg / minecraft -サーバー: java17
名前: minecraft -サーバー
環境:
-名前: EULA
: "TRUE"
-名前: ONLINE_MODE
: "FALSE"
-名前:難易度
価値平和
-名前: PVP
: "false"
-名前: UID
: "0"
-名前: GID
: "0"
-名前:メモリー
: "4G"
リソース { }
ポート:
-コンテナポート: 25565
プロトコル: TCP
ボリュームマウント:
-名前:永続的-ストレージ
マウントパス: /データ
巻数:
-名前:永続的-ストレージ
永続ボリュームクレーム:
クレーム名:マインクラフト- PVC
---
APIバージョン: v1
種類:サービス
メタデータ:
ラベル:
アプリ:マインクラフト
名前:マインクラフト
仕様:
ポート:
-ポート: 25565
プロトコル: TCP
ターゲットポート: 25565
セレクター:
アプリ:マインクラフト
タイプ: NodePort
終了

テスト

クライアントを起動し、マルチプレイヤー ゲームにサーバーを追加します。アドレスは仮想マシンのパブリック IP で、ポートはサービスの NodePort です。

セルフホスティング-Minecraft

そうすれば楽しい時間が過ごせますよ。

<<:  クラウド コンピューティングの利点を探る: IaaS、PaaS、SaaS から GCP、AWS、Microsoft まで

>>:  eBPF ソケット レベル リダイレクトのカーネル実装の詳細を図解

推薦する

質問タイトルについてどれくらい知っていますか?質問タイトルの範囲と意味を分析します

誰もが質問形式のタイトルの書き方に触れたことがあると思います。私たちの日常生活では、誰かに会ったとき...

検索の新時代を迎え、Baidu はより健全な検索エコシステムを構築

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています先進的なA...

2020年がエッジコンピューティングにとって興味深い年となる3つの理由

調査会社フォレスター社のアナリスト、アビジット・スニル氏は、2020年のエッジコンピューティングの発...

エッジコンピューティングはクラウドの終焉を意味するのでしょうか?

モノのインターネット (IoT) が爆発的に普及するにつれ、接続されたデバイスは、製造業から自動車、...

使い捨てアプリはユーザーエクスペリエンスを無視しています。モバイルアプリは今後どのように発展していくのでしょうか?

これからはモバイルインターネットの時代です。モバイルインターネットの発展に関しては、ユーザーはモバイ...

Pure Storage が Microsoft Azure にパブリック クラウド ブロック ストレージを導入

Pure Storage は、Amazon AWS との既存のパートナーシップを拡大し、Micros...

QQドリフトボトルを外部リンクとして使用する場合は、実行する前に慎重に検討し、盲目的にトレンドに従わないでください。

最近、インターネット上で「QQドリフトボトルを巧みに利用して外部リンクを作る」という方法が広まってい...

悠雲亭:JD.comがYitaoの価格検索とプラグインをブロックするのは違法ですか?

本日は、B2C ショッピング サイト JD.com と Alibaba グループ傘下の価格比較サイト...

vmiss香港vpsはどうですか?香港の簡単なレビュー - BGP V3 シリーズ香港 VPS

vmiss は最近、香港 Netlab データ センターに VPS を追加しました。このシリーズは「...

IT ニーズを満たすクラウド抽象化を理解する

パブリック クラウドは、コンピューティングをユーティリティとしてサポートするように設計されたさまざま...

これまでに最適化されたプロモーション表示ウェブサイトを記録する

実は、ブログに「SEO分析」のコラムを初めて作ったとき、以前最適化したウェブサイトを記録するつもりで...

検索エンジンに適したサイトを作るにはどうすればいいですか?

月収10万元の起業の夢を実現するミニプログラム起業支援プランSEO 担当者は長い間、検索エンジンに好...

arkecxはどうですか? arkecxのスペインデータセンターのクラウドサーバーの簡単なレビュー

arkecxのデータセンターは現在、世界24の国と地域に設置されており、将来的にはヨーロッパのスペイ...

企業が初めてインターネット マーケティングを始める場合、初心者はどのプラットフォームを選択すべきでしょうか?

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています企業のイン...