From 79b1b534b4376d6dc904c2eed553e84ffc80d839 Mon Sep 17 00:00:00 2001 From: Robert Bailey Date: Wed, 3 Jul 2019 11:00:41 -0700 Subject: [PATCH] Add instructions about taints and tolerations to the install instructions, with a specific example for GKE. Remove some of the duplicate verbiage from the Helm instructions. --- site/content/en/docs/Installation/_index.md | 23 +++++++++++++++++++++ site/content/en/docs/Installation/helm.md | 12 ++--------- 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/site/content/en/docs/Installation/_index.md b/site/content/en/docs/Installation/_index.md index 5b4bd35b44..27f6f2d9f5 100644 --- a/site/content/en/docs/Installation/_index.md +++ b/site/content/en/docs/Installation/_index.md @@ -8,6 +8,10 @@ description: > In this quickstart, we will create a Kubernetes cluster, and populate it with the resource types that power Agones. +_When running in production, Agones should be scheduled on a dedicated pool of nodes, distinct from where Game Servers + are scheduled for better isolation and resiliency. See the sections below for instructions on how to do this in your + preferred environment._ + ## Usage Requirements - Kubernetes cluster version 1.11 @@ -109,6 +113,25 @@ Flag explanations: * num-nodes: The number of nodes to be created in each of the cluster's zones. Default: 3 * machine-type: The type of machine to use for nodes. Default: n1-standard-2. Depending on the needs of you game, you may wish to [have a bigger machines](https://cloud.google.com/compute/docs/machine-types). +By default Agones prefers to be scheduled on nodes labeled with +`stable.agones.dev/agones-system=true` and tolerates the node taint `stable.agones.dev/agones-system=true:NoExecute`. +If no dedicated nodes are available, Agones will run on regular nodes, but that’s not recommended for production use. + +```bash +gcloud container node-pools create agones-system \ + --cluster=[CLUSTER_NAME] \ + --node-taints stable.agones.dev/agones-system=true:NoExecute \ + --node-labels stable.agones.dev/agones-system=true \ + --num-nodes=1 +``` + +Flag explanations: + +* cluster: The name of the cluster in which the node pool is created. +* node-taints: The Kubernetes taints to automatically apply to nodes in this node pool. +* node-labels: The Kubernetes labels to automatically apply to nodes in this node pool. +* num-nodes: The Agones system controllers only require a single node of capacity to run. For faster recovery time in the event of a node failure, you can increase the size to 2. + Finally, let's tell `gcloud` that we are speaking with this cluster, and get auth credentials for `kubectl` to use. ```bash diff --git a/site/content/en/docs/Installation/helm.md b/site/content/en/docs/Installation/helm.md index e084ee67e1..d5e8c39efe 100644 --- a/site/content/en/docs/Installation/helm.md +++ b/site/content/en/docs/Installation/helm.md @@ -29,16 +29,8 @@ _We recommend to install Agones in its own namespaces (like `agones-system` as s you can use the helm `--namespace` parameter to specify a different namespace._ When running in production, Agones should be scheduled on a dedicated pool of nodes, distinct from where Game Servers are scheduled for better isolation and resiliency. By default Agones prefers to be scheduled on nodes labeled with `stable.agones.dev/agones-system=true` and tolerates node taint `stable.agones.dev/agones-system=true:NoExecute`. If no dedicated nodes are available, Agones will -run on regular nodes, but that's not recommended for production use. - -As an example, to set up dedicated node pool for Agones on GKE, run the following command before installing Agones. Alternatively you can taint and label nodes manually. - - ``` -gcloud container node-pools create agones-system --cluster=... --zone=... \ - --node-taints stable.agones.dev/agones-system=true:NoExecute \ - --node-labels stable.agones.dev/agones-system=true \ - --num-nodes=1 -``` +run on regular nodes, but that's not recommended for production use. For instructions on setting up a decidated node +pool for Agones, see the [Agones installation instructions]({{< relref "../_index.md" >}}) for your preferred environment. The command deploys Agones on the Kubernetes cluster with the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation.