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 10, 2023
1 parent f2dd4c4 commit 18d5fbd
Showing 1 changed file with 20 additions and 1 deletion.
21 changes: 20 additions & 1 deletion site/content/en/docs/Advanced/high-availability-agones.md
Expand Up @@ -13,6 +13,8 @@ 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**.

`SplitControllerAndExtensions` also permits the multiple `agones-controller` 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.

{{< alert title="GKE Autopilot Clusters" color="warning" >}}
`SplitControllerAndExtensions` must be enabled for GKE Autopilot.
{{< /alert >}}
Expand All @@ -34,14 +36,31 @@ 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 while `SplitControllerAndExtensions` is enabled and while `agones.controller.replicas` is set to > 1. The current default value for [`agones.controller.replicas`]({{< relref "/docs/Installation/Install Agones/helm.md#configuration" >}}) is 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
```

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
Expand Down

0 comments on commit 18d5fbd

Please sign in to comment.