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
- (選用) 監控Agones運行狀態用 本人沒有使用直接引用官網描述https://agones.dev/site/docs/installation/creating-cluster/gke/
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