Fleetis a set of warm GameServers that are available to be allocated from.
To allocate a
GameServer from a
Fleet, use a
Like any other Kubernetes resource you describe a
Fleet’s desired state via a specification written in YAML or JSON to the Kubernetes API. The Agones controller will then change the actual state to the desired state.
Fleet specification is available below and in the
for reference :
apiVersion: "stable.agones.dev/v1alpha1" kind: Fleet metadata: name: fleet-example spec: replicas: 2 scheduling: Packed strategy: type: RollingUpdate rollingUpdate: maxSurge: 25% maxUnavailable: 25% template: metadata: labels: foo: bar spec: ports: - name: default portPolicy: "dynamic" containerPort: 26000 health: initialDelaySeconds: 30 periodSeconds: 60 template: spec: containers: - name: example-server image: gcr.io/agones/test-server:0.1
Since Agones defines a new
Custom Resources Definition (CRD)
we can define a new resource using the kind
Fleet with the custom group
stable.agones.dev and API
spec field is the actual
Fleet specification and it is composed as follow:
replicasis the number of
GameServersto keep Ready or Allocated in this Fleet
schedulingdefines how GameServers are organised across the cluster. Affects backing Pod scheduling, as well as scale down mechanics. “Packed” (default) is aimed at dynamic Kubernetes clusters, such as cloud providers, wherein we want to bin pack resources. “Distributed” is aimed at static Kubernetes clusters, wherein we want to distribute resources across the entire cluster. See Scheduling and Autoscaling for more details.
GameServerreplacement strategy for when the
GameServertemplate is edited.
typeis replacement strategy for when the GameServer template is changed. Default option is “RollingUpdate”, but “Recreate” is also available.
RollingUpdatewill increment by
maxSurgevalue on each iteration, while decrementing by
maxUnavailableon each iteration, until all GameServers have been switched from one version to another.
Recreateterminates all non-allocated
GameServers, and starts up a new set with the new
GameServerconfiguration to replace them.
rollingUpdateis only relevant when
maxSurgeis the amount to increment the new GameServers by. Defaults to 25%
maxUnavailableis the amount to decrements GameServers by. Defaults to 25%
GameServerconfiguration template. See the GameServer reference for all available fields.
Fleet Allocation Specification
FleetAllocation is used to allocate a
GameServer out of an existing
FleetAllocation specification is available below and in the
apiVersion: "stable.agones.dev/v1alpha1" kind: FleetAllocation metadata: generateName: fleet-allocation-example- spec: fleetName: fleet-example metadata: labels: mode: deathmatch annotations: map: garden22
We recommend using
metadata > generateName, to declare to Kubernetes that a unique
name for the
FleetAllocation is generated when the
FleetAllocation is created.
spec field is the actual
FleetAllocation specification and it is composed as follow:
fleetNameis the name of an existing Fleet. If this doesn’t exist, an error will be returned when the
metadatais an optional list of custom labels and/or annotations that will be used to patch the game server’s metadata in the moment of allocation. This can be used to tell the server necessary session data
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.