Skip to content

Commit

Permalink
docs: Add docs/scaling.md (#2918)
Browse files Browse the repository at this point in the history
  • Loading branch information
alexec committed May 1, 2020
1 parent 99858ea commit 9773cfe
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 0 deletions.
1 change: 1 addition & 0 deletions docs/README.md
Expand Up @@ -37,6 +37,7 @@ Some use-case specific documentation is available:
* [Resource Duration](resource-duration.md)
* [REST API](rest-api.md)
* [Running Locally](running-locally.md)
* [Scaling](scaling.md)
* [Security](security.md)
* [Service Accounts](service-accounts.md)
* [Static Code Analysis](static-code-analysis.md)
Expand Down
49 changes: 49 additions & 0 deletions docs/scaling.md
@@ -0,0 +1,49 @@
# Scaling

For running large workflows, you'll typically need to scale the controller to match.

## Horizontally Scaling

You cannot horizontally scale the controller.

## Vertically Scaling

You can scale the controller vertically:

- If you have workflows with many steps, increase `--pod-workers`.
- If you have many workflows, increase `--workflow-workers`.

You will need to increase the controller's memory and CPU.

## Sharding

### One Install Per Namespace

Rather than running a single installation in your cluster, run one per namespace using the `--namespaced` flag.

### Instance ID

Within a cluster can use instance ID to run N Argo instances within a cluster.

Create one namespace for each Argo, e.g. `argo-i1`, `argo-i2`:.

Edit [workflow-controller-configmap.yaml](workflow-controller-configmap.yaml) for each namespace to set an instance ID.

```
apiVersion: v1
kind: ConfigMap
metadata:
name: workflow-controller-configmap
data:
instanceID: i1
```

> v2.9 and after
You'll may need to pass the instance ID to the CLI:

```
argo --instance-id i1 submit my-wf.yaml
```

You do not need to have one instance ID per namespace, you could have many or few.

0 comments on commit 9773cfe

Please sign in to comment.