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 ソケット レベル リダイレクトのカーネル実装の詳細を図解

推薦する

エンタープライズウェブサイト変革マーケティング戦略

企業のウェブサイトは、従来のマーケティングからオンライン マーケティングへと移行中です。インターネッ...

謝文:ビッグデータ時代に産業チェーンは大きな再編を経験する

インターネットが商業化、市場化されてから20年以上が経ち、産業生態環境と産業チェーンは大きな変化を遂...

U-Mail: EDM がゴミ箱行きになる可能性を減らす方法

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

マイクロソフトはソフトウェアとハ​​ードウェアを組み合わせて現代のオフィスを再定義する

テクノロジーの継続的な発展とビジネスモデルの革新により、効率性の向上とコラボレーションの強化を主な特...

新浪はポルノ関連の犯罪で重い罰金を科される可能性があり、NBAのライブ放送事業の将来は不透明

劉佳新浪はわいせつな情報やポルノ情報を流布したとして、81万5000ドルの罰金を科せられ、一部のライ...

自分自身に問いかけてください: あなたは本物の SEO ですか?

SEO という言葉は、今日ではあまりにも多くの解釈がなされ、誤解されすぎています。現状では、初心者が...

SEOチームを構築する際に考慮すべき3つの重要な要素

Baidu アルゴリズムの継続的な調整により、多くの個人ウェブマスターは、正しいウェブサイト最適化方...

Googleの画像要素の最適化に関する分析

ウェブサイトでは画像の使用が増えています。画像を最適化するには特定の方法があり、Google 検索エ...

ウェブサイトの持続可能な開発

インターネットの普及によりウェブサイトが急速に発展し、春の雨後の竹の子のようにウェブマスターが大量に...

Alibaba、JD.com、Pinduoduo、ソーシャルeコマース企業間の戦いは間違いなく起こるでしょう!

コア読書: 1. Alibaba と JD はソーシャル e コマースにどのようなモデルを選択します...

新しいクラウド時代のIT運用サービスプロバイダーとして、流行を追わず冷静に運用・保守を!

[51CTO.com からのオリジナル記事] 現在、多くの企業では一般的にクラウド アーキテクチャと...

フォックスコンのメーカー:女性の生産ライン労働者から販売チャンピオンへの成功した転換を達成する方法

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

ホームページのランキングに含まれない6つの重要な要素

360 ブラウザとの競争により、Baidu 検索エンジンも市場競争のプレッシャーを感じています。Ba...

楊万偉:企業はどうすれば百科事典のプロモーションを迅速に実行できるのでしょうか?

「百科」とは、インターネット上のオープンで無料のオンライン百科事典を指し、さまざまな分野の知識を網羅...

Baidu ホームページに追加ボタンの外観に影響を与える要因のグラフィカルな説明

先週、Baidu のホームページにナビゲーション コラムがあることに気づきましたが、そのときはあまり...