0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[サルでもわかる]Azure にAgones をDeployしてみる[超基本]

Posted at

Agnes はKubernetes上で動くGame Dedicated Server のライブラリです。
オープンソースで大規模なスケールのマルチプレイサーバにも対応しています。
サンプルを利用してAzure Kubernetes Service への展開を試しました

詳細はこちらに記載されていますが、Cloud Shellで実行されているためここではGUIでの手順を記載します。

AKSクラスターの作成

(1)リソースグループを作成
  リージョンは任意ですがとりあえず「東日本」を選択
agones01.png

(2)AKSクラスターを作成するため「Kubernetes Service」を検索し「作成」をクリック
agones02.png

(3)リソースグループやリージョンなどを設定
agones03.png

(4)複数のノードプールを設定する場合は追加(今回はデフォルト
agones04.png

(5)クラスターへの認証とアクセス制限を設定(今回はデフォルト)
agones05.png

(6)ネットワークやセキュリティ設定の設定(今回はデフォルト)
agones06.png

(7)Azure Container Registryと連携するようであれば設定
 監視はAzure Monitorを利用するため「有効」がチェックされているか確認
agones07.png

(8)検証が問題なく完了したら「作成」をクリック
agones08.png

(9)AKSクラスターにUDPトラフィックを通過させる必要があるため、NSGの受信セキュリティ規則に宛先ポート範囲を7000~8000に設定した新しいルールを作成。
agones09.png

Agonesのインストール

やり方はyamlファイルを使用する方法とhelmパッケージマネージャを利用する方法があります。
今回はテストなのでyamlの方で試します

(1)Azure CLIにて下記コマンドでAKSクラスタに接続
(myResourceGroup と myAKSCluster は適宜自分の環境に合わせて書き換えて下さい)

az aks get-credentials --resource-group myResourceGroup --name myAKSCluster

(2)接続を確認するためにクラスタノードの一覧を表示

kubectl get nodes

(3)Agones をインストールするため、下記コマンドを実行

kubectl create namespace agones-system
kubectl apply -f https://raw.githubusercontent.com/googleforgames/agones/release-1.20.0/install/yaml/install.yaml

ただしこのURLのinstall.yamlはデフォルトのものなので、ローカルにダウンロードし必要に応じて内容は変更した上でこちらの手順を実施してください
各パラメータの詳細はこちら

(4)正常にインストールされたことを確認するために、下記コマンドを実行
6つのPodが正常に稼働していることが確認できる

kubectl describe --namespace agones-system pods
kubectl get pods --namespace agones-system

ゲームサーバを作成する

テストのためにAgonesを使ったGameServerを作成します

(1)Azure CLIにて下記コマンドを実行しサンプルゲームサーバを作成

kubectl create -f https://raw.githubusercontent.com/googleforgames/agones/release-1.20.0/examples/simple-game-server/gameserver.yaml

Kubernetesの中にGameServerを作成し、シンプルなudpゲームサーバーコードを実行するためのバッキングポッドも作成。
下記コマンドで実行状況を確認することができる。

kubectl get gameservers

(2)サーバステータスに関してはそれぞれ下記コマンドで確認することが可能

ステータスの状態変化を確認

watch kubectl describe gameserver

IPアドレスの取得

kubectl get gs

(3)netcat が実行可能なAKSと同一ネットワークにあるVMなどからコマンドを実行し
 ゲームサーバと通信できることを確認

nc -u {IP} {PORT}

各ゲームエンジンに対応したSDKも用意されているので、それぞれのSDKを使ったゲームサーバの挙動もそのうち試したい

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?