跳至主要内容

將Game Server跑起來

官方範例

這邊導入Fleet&FleetAutoscaler,簡單來說它會自動跑你的Game Server,進行自動擴展 https://agones.dev/site/docs/getting-started/create-fleet/
https://agones.dev/site/docs/getting-started/create-fleetautoscaler/

Fleet.yaml

設定containers內的image
env傳入自訂的環境變數 "cluster-autoscaler.kubernetes.io/safe-to-evict": "false": 如果你有設定Cluster Autoscaler要加上避免他會嘗試移動你的game server導致玩家斷線、遊戲中斷...

apiVersion: "agones.dev/v1"
kind: Fleet
metadata:
name: simple-game-server
annotations:
"cluster-autoscaler.kubernetes.io/safe-to-evict": "false"
spec:
replicas: 1
template:
spec:
ports:
- name: default
containerPort: 7654
portPolicy: Dynamic
protocol: TCPUDP
template:
spec:
containers:
- name: simple-game-server
image: gcr.io/[PROJECT_ID]/game-server-name:modified
env:
- name: "PORT"
value: "7654"

FleetAutoscaler.yaml

設定bufferSize、minReplicas、maxReplicas,
fleetName必須對應Fleet的name

apiVersion: "autoscaling.agones.dev/v1"
kind: FleetAutoscaler
metadata:
name: simple-game-server-autoscaler
spec:
fleetName: simple-game-server
policy:
type: Buffer
buffer:
bufferSize: 5
minReplicas: 5
maxReplicas: 10

Apply

將兩個檔案Apply

kubectl apply -f Fleet.yaml
kubectl apply -f FleetAutoscaler.yaml

檢查有沒有game server跑起來 如果有5個都是Ready就是正常

kubectl get gs

可以嘗試修改一些上面兩個yaml檔後再進行Apply,你會發現更新版本就這麼簡單

Reference

Agones-Fleet
Agones-FleetAutoScaler