Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add to SplitControllerAndExtensions documentation for leader election #3083

Merged
merged 1 commit into from Apr 12, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
9 changes: 6 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` enables multiple `agones-controller` pods, with a primary controller selected via leader election. Having multiple `agones-controller` minimizes downtime of the service from pod disruptions such as deployment updates, autoscaler evictions, and crashes.

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

## Extension Pod Configrations

Expand All @@ -34,14 +34,17 @@ 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.
chiayi marked this conversation as resolved.
Show resolved Hide resolved

When `SplitControllerAndExtensions` is enabled, what was previously a single `agones-controller` pod is deployed by default as 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-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