kubernetes
Agonesではゲームセッションに利用するサーバーを事前に割り当て(Allocate)する必要がある。 小規模なサービスであれば欲しいときに割り当てをする、それだけで十分動くが大規模・高頻度な割り当ての実現には工夫が必要だ。
Kubernetes の世界では HPA (Horizontal Pod Autoscaler) や Cluster Autoscaler によって負荷に応じて動的にリソースを増減できる。 では、 Agones においても同様に動的なリソース増減ができるのか?その方法と考慮事項を探っていく。
Kubernetes上でゲームサーバーをホストする Agones を用いた環境において、CPU負荷にばらつきがあるゲーム群を動かしたいという事例があった。そこで、それぞれのゲームに対する適切なCPU割り当てを決定するために独自の工夫を行ったので、その実装について…
Kubernetes v1.22 では結構多くのAPIが廃止1され、慎重なアップグレードが求められる。 その補助として、最近出たGKEの新機能 Deprecation Insights を使うと便利だ。 v1.21 等のGKE clusterで廃止予定のAPIが使われていないかチェックしてくれる。 あるGKE…
Kubernetes上でゲームサーバーを扱うframeworkのAgones は ゲームサーバーに直接(TCP or UDPで)接続する 機能を持つ。 ゲームサーバーの実体はPodだが、なぜPodへの直接接続が必要なのか、そしてAgonesがどのように直接接続の機能を提供しているかを読み解…
Prometheus exporterの動作を検証したい場合など、ローカル環境のKubernetes(minikube)上にPrometheus + Grafanaを立てたい場合がある。Grafanaはデフォルトでユーザー認証が入っているが、ローカル環境では自分しか触らないので認証が邪魔なときがある。 …
Kustomizeには ConfigMapGenerator, SecretGenerator という機能がある。 これを使うと、yamlの定義からconfigMap(またはsecrets)を自動生成してくれる1。 たとえば、kustomization.yaml にconfigMapGeneratorの定義で the-map という名前のconfigMapを作…
この記事はGoogle Cloud + Gaming Advent Calendar 2020 13日目の記事です。 Googleからゲームのマッチング用フレームワークであるOpen Matchがリリースされた。 このOpen MatchはKubernetes環境で動作することで現代のCloud Nativeな環境に適した構成となっ…
Agones を使って開発をしている最中、Agonesの細かな挙動についてテストしたくなる時があった。 Agonesはクイックスタート的な小さなサーバーでも動かすのに結構な手間が必要で、パラメータを少しずつ変えながら意図した挙動になっているかチェックする…とい…
Googleが Agones というプロジェクトを進めている。 また、Google Cloud Game ServersというGoogle Cloud上でAgonesを管理できるサービスを発表したことで話題になった。 このAgonesというプロジェクトが何をするもので、何をしないものなのか? 公式サイト…
Agonesを使ってGoからゲーム用サーバーの割当をしてみようと思って、GoでAgones Client APIを使ったものを組んでみた それで早速 go run してみたら、次のようなビルドエラーが出てしまった。 # k8s.io/client-go/rest ../../go/pkg/mod/k8s.io/client-go@v1…
最近は kubernetes (k8s) が人気。ただ、k8s は大規模なアプリでも耐えられるような設計なので、概念がめちゃ多くて理解がむずかしい。 ローカル環境開発では、そんなたいそうな物はいらないので、docker-compose を使うと簡単で良い しかし、それだとローカ…