Fleet is a set of warm GameServers that are available to be allocated from. Fleets manage the creation and scaling of GameServer resources, similar to how Kubernetes Deployments manage ReplicaSets.
API Version
agones.dev/v1
Kind
Fleet
Resource Structure
Spec Fields
Thespec field defines the desired configuration for the Fleet.
replicas
Number of GameServers to keep Ready or Allocated in this Fleet. This is the desired replica count.
scheduling
Defines how GameServers are organized across the cluster:
Packed- Aimed at dynamic Kubernetes clusters (cloud providers), bin packs resources onto nodes for efficient resource usageDistributed- Aimed at static Kubernetes clusters, distributes resources evenly across the entire cluster
strategy
Deployment strategy for managing GameServer updates. Similar to Kubernetes Deployment strategies.
allocationOverflow
Labels and/or annotations to apply to GameServers when the number of Allocated GameServers exceeds the desired replicas in the underlying GameServerSet. This is useful for managing overflow capacity.
priorities
Beta Feature (CountsAndLists flag)Configuration that alters scale down logic based on available capacity order. Priority sorting is in descending importance (position 0 is checked first).
- For
Packedstrategy: Priority list is the tie-breaker within nodes for optimal infrastructure usage - For
Distributedstrategy: Entire Fleet is sorted by this priority list to determine GameServer deletion order
template
GameServer template to apply for this Fleet. This template defines the specification for each GameServer created by the Fleet.
Status Fields
Thestatus field reflects the current state of the Fleet.
replicas
Total number of current GameServer replicas managed by this Fleet.
readyReplicas
Number of GameServer replicas in the Ready state.
reservedReplicas
Total number of Reserved GameServer replicas. Reserved instances won’t be deleted on scale down but won’t cause an autoscaler to scale up.
allocatedReplicas
Number of Allocated GameServer replicas.
players
Alpha Feature (PlayerTracking flag)Current total player capacity and count aggregated across all GameServers in this Fleet.
counters
Beta Feature (CountsAndLists flag)Aggregated counter capacity and count across all GameServers in this Fleet.
lists
Beta Feature (CountsAndLists flag)Aggregated list capacity and values across all GameServers in this Fleet.
Relationship to GameServerSets
Fleets create and manage GameServerSets, which in turn create and manage individual GameServers. This hierarchy is similar to:- Kubernetes: Deployment → ReplicaSet → Pod
- Agones: Fleet → GameServerSet → GameServer
- Initial creation (creates one GameServerSet)
- Rolling updates (temporarily creates a second GameServerSet during transition)
- Strategy changes
spec.replicas value.
Scaling Behavior
Scale Up
When increasing replicas:- Fleet increases the replica count on the active GameServerSet
- GameServerSet creates new GameServers
- GameServers transition through states until Ready
- Status counters update to reflect new totals
Scale Down
When decreasing replicas:- Fleet identifies GameServers to remove based on:
- Priority configuration (if specified)
- Scheduling strategy (Packed vs Distributed)
- Current state (Ready servers removed before Reserved)
- Selected GameServers are deleted
- Allocated GameServers are never scaled down
- Reserved GameServers are preserved but don’t trigger scale up
Rolling Updates
During template updates withRollingUpdate strategy:
- New GameServerSet is created with updated template
- Fleet scales up new GameServerSet by
maxSurge - Fleet scales down old GameServerSet by
maxUnavailable - Process repeats until all GameServers use new template
- Old GameServerSet remains with 0 replicas (not deleted)
Notes
Fleet names are used as labels on GameServerSets and GameServers, so they must not exceed 63 characters (Kubernetes label value maximum).
The Fleet status is defined as a subresource, meaning status updates don’t trigger a new resource version for the main Fleet object.
