跳至主要内容

Agones安裝

注意: 我當初架設時使用kuberbates版本是1.19.13,Agones版本是1.16.0
寫這份文件時Agones已經到1.21.0 若需要最新的文件請至https://agones.dev/site/docs/

Prerequisite

  • 你已經創建GCP專案,開啟GKE服務
  • 安裝Google Cloud SDK
    我是使用local shell不是Google的Cloud shell
  • 安裝kuberbates的command line tool : kubectl
  • 安裝docker

Create GKE Cluster

gcloud container clusters create my-server \
--cluster-version=1.19.13-gke.1200 \
--tags=game-server \
--scopes=gke-default \
--num-nodes=1 \
--no-enable-autoupgrade \
--machine-type=e2-standard-2
gcloud config set container/cluster my-server
gcloud container clusters get-credentials my-server

參數說明:

  • my-server: 你clusters的名字 可以自由命名
  • cluster-version: Kubernetes的版本 注意GKE會擋版本 隨時間推移,你會需要指定更高的版本 但你已經創建的cluster,不會說不能部屬,只是Google會建議你更新,當然你要先確定所有程式可以在新版本執行...
  • tags: tag跟其他GCP上面服務會需要對應到 (ex.後面的防火牆設定)
  • scopes: Defines the Oauth scopes required by the nodes. 照抄就先用預設
  • num-nodes: 簡單來說要在這個cluster開幾個node 已開發來說先設1就好 有需要可以後面在加
    重點是開越多是要$$的
  • no-enable-autoupgrade: 不要自動更新cluster-version,這個我認為找死才會開自動更新...
  • machine-type: VM的機器類型

正式環境

  • 如果在正式環境 Agones建議你創建一個node-pool給Agones-system
gcloud container node-pools create agones-system \
--cluster=my-server \
--no-enable-autoupgrade \
--node-taints agones.dev/agones-system=true:NoExecute \
--node-labels agones.dev/agones-system=true \
--num-nodes=1

Optional: Create a node pool for Metrics if you want to monitor the Agones system using Prometheus with Grafana or Stackdriver.

gcloud container node-pools create agones-metrics \
--cluster=my-server \
--no-enable-autoupgrade \
--node-taints agones.dev/agones-metrics=true:NoExecute \
--node-labels agones.dev/agones-metrics=true \
--num-nodes=1

設定GCP防火牆

這邊有TCP跟UDP根據需求選用

gcloud compute firewall-rules create game-server-firewall-udp --allow udp:7000-8000 --target-tags game-server --description "Firewall to allow game server udp traffic"
gcloud compute firewall-rules create game-server-firewall-tcp --allow tcp:7000-8000 --target-tags game-server --description "Firewall to allow game server tcp traffic"

安裝 Agones system

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

Reference

Agones-Install Guide