Installation on CloudBees CI on modern cloud platforms (active/active)

2 minute read

High Availability installation instructions overview

You can install High Availability on any Kubernetes cluster. The following table contains links to the specific platform installation instructions and the installation pre-requirements for each one of them.

Table 1. High Availability installation options and links
Platform General install guide Pre-installation requirements

Azure Kubernetes Service (AKS)

Amazon Elastic Kubernetes Service (EKS)

Google Kubernetes Engine (GKE)

Red Hat OpenShift (OpenShift)

Kubernetes

Storage requirements

As HA (active/active) requires real-time shared storage between replicas, it does not support multi-region replication.

In addition, there are specific storage requirements to use HA (active/active). Please review the specific pre-installation requirements for your platform.

Managed controller with custom YAML definitions

Managed controllers require kind: Deployment to run in HA mode. CloudBees CI fails to provision them if they are configured to run in HA mode with kind:StatefulSet in their YAML definition.

High Availability in a CloudBees CI on modern cloud platforms

When a managed controller is running in High Availability mode, the Pod status column appears on the Operation center dashboard. This columns displays how many controller replicas exist for each one of the managed controllers, and how many of them are available.

Pod status column
Figure 1. Pod status column

Start a managed controller in High Availability mode using the UI

Admin users can easily create managed controllers that run in High Availability mode by using the UI. Create or configure the managed controller as usual and in the configuration screen as shown in the following example:

High Availability options for managed controllers
Figure 2. High Availability option for managed controllers
  1. Enable the High Availability mode.

  2. Enter the number of desired replicas in the Managed controller replicas field.

  3. Enter the Maximum number of replicas if you want auto-scaling. The Metrics server is required in your cluster if you modify this value to enable auto-scaling. Set it to zero to disable auto-scaling.

  4. Set the CPU threshold in percent to trigger upscaling or downscaling if auto-scaling has been configured.

  5. And select the Storage Class Name for the shared file system for the replicas. If it is empty, use the default storage class defined in your Kubernetes cluster.

Modifying the number of replicas or the container image of a running managed controller updates the managed controller deployment automatically, and it does not require a restart from the operations center.

Team controllers do not support HA (active/active), but team controllers can be migrated to managed controllers by following Migrating managed controllers and team controllers.

Single replica HA cluster

When creating a managed controller in High Availability mode, you can set the number of replicas to one. A single replica HA cluster cannot distribute the workload among the different replicas, but for CloudBees CI on modern cloud platforms, this configuration still provides the following High Availability benefits:

  • Rolling restarts.

  • Rolling upgrades.

In a single-replica HA cluster, if the controller fails, the controller is not available during the recovery process.

Additional resources

Getting started with CloudBees CI High Availability