Skip to content

Commit

Permalink
Add to Command SplitControllerAndExtensions not found documentation f…
Browse files Browse the repository at this point in the history
…or leader election
  • Loading branch information
chiayi committed Apr 11, 2023
1 parent a2e91cb commit fa30e56
Showing 1 changed file with 22 additions and 3 deletions.
25 changes: 22 additions & 3 deletions site/content/en/docs/Advanced/high-availability-agones.md
Expand Up @@ -13,9 +13,9 @@ publishDate: 2023-02-28

When `SplitControllerAndExtensions` is enabled, the `agones-controller` responsibility is split up into `agones-controller`, which enacts the Agones control loop, and `agones-extensions`, which acts as a service endpoint for webhooks and the allocation extension API. Splitting these responsibilities allows the `agones-extensions` pod to be **horizontally scaled**, making the Agones control plane **highly available** and more **resiliant to disruption**.

{{< alert title="GKE Autopilot Clusters" color="warning" >}}
`SplitControllerAndExtensions` also permits multiple `agones-controller` pods and leader eleciton usage. Having multiple `agones-controller` minimizes downtime of the service from voluntary pod disruptions such as pod deletes, deployment updates, and pod restarts.

`SplitControllerAndExtensions` must be enabled for GKE Autopilot.
{{< /alert >}}

## Extension Pod Configrations

Expand All @@ -34,19 +34,38 @@ An important configuration to note is the PodDisruptionBudget fields, `agones.ex

## Deployment Considerations

When `SplitControllerAndExtensions` is enabled, what was previously a single `agones-controller` pod is deployed as `agones-controller` and 2 `agones-extensions` pods. For example:
Leader election will automatically be enabled when `SplitControllerAndExtensions` is enabled and `agones.controller.replicas` is > 1. [`agones.controller.replicas`]({{< relref "/docs/Installation/Install Agones/helm.md#configuration" >}}) defaults to 2.

When `SplitControllerAndExtensions` is enabled, what was previously a single `agones-controller` pod is deployed as , possibly 2+, `agones-controller` and 2 `agones-extensions` pods. For example:

```
NAME READY STATUS RESTARTS AGE
agones-allocator-78c6b8c79-h9nqc 1/1 Running 0 23h
agones-allocator-78c6b8c79-l2bzp 1/1 Running 0 23h
agones-allocator-78c6b8c79-rw75j 1/1 Running 0 23h
agones-controller-fbf944f4-vs9xx 1/1 Running 0 23h
agones-extensions-5648fc7dcf-hm6lk 1/1 Running 0 23h
agones-extensions-5648fc7dcf-qbc6h 1/1 Running 0 23h
agones-ping-5b9647874-2rrl6 1/1 Running 0 27h
agones-ping-5b9647874-rksgg 1/1 Running 0 27h
```

{{% feature publishVersion="1.31.0" %}}
Or if `agones.controller.replicas` > 1

```
NAME READY STATUS RESTARTS AGE
agones-allocator-78c6b8c79-h9nqc 1/1 Running 0 23h
agones-allocator-78c6b8c79-l2bzp 1/1 Running 0 23h
agones-allocator-78c6b8c79-rw75j 1/1 Running 0 23h
agones-controller-fbf944f4-vs9xx 1/1 Running 0 23h
agones-controller-fbf944f4-sjk3t 1/1 Running 0 23h
agones-extensions-5648fc7dcf-hm6lk 1/1 Running 0 23h
agones-extensions-5648fc7dcf-qbc6h 1/1 Running 0 23h
agones-ping-5b9647874-2rrl6 1/1 Running 0 27h
agones-ping-5b9647874-rksgg 1/1 Running 0 27h
```
{{% /feature %}}

The number of replicas for `agones-extensions` can be set using helm variable [`agones.extensions.replicas`]({{< relref "/docs/Installation/Install Agones/helm.md#configuration" >}}), but the default is `2`.

Expand Down

0 comments on commit fa30e56

Please sign in to comment.