Pre-installation requirements for GKE

3 minute read

For details about supported platforms for CloudBees CI on modern cloud platforms, such as supported Kubernetes, Helm, and NFS versions, refer to Supported platforms for CloudBees CI on modern cloud platforms.

Installing cbsupport

Before installing CloudBees CI on modern cloud platforms, you should install the cbsupport command-line tool. You can use cbsupport to collect data commonly required for supporting CloudBees products. You can then send that data to the CloudBees Support team to troubleshoot any issues with your CloudBees CI on modern cloud platforms solution.

For instructions on how to install cbsupport, refer to the cbsupport CLI documentation.

GKE requirements

The following items are required to install CloudBees CI on modern cloud platforms on GKE:

  • On your local computer or a bastion host:

    • A Kubernetes client with a currently supported version of Kubernetes, installed and configured (kubectl). Beta releases are not supported.

    • gcloud (See Installing Google Cloud SDK for instructions).

  • A GKE cluster running a currently supported version of Kubernetes. Beta releases are not supported.

    • With nodes that have at least 2 CPUs, 4 GiBs of memory (so nodes have 1 full CPU / 1 GiB available after running a master with default settings).

    • The cluster must have network access to container images (public Docker Hub or a private Docker Registry).

  • A namespace in the cluster (provided by your admin) with permissions to create Role and RoleBinding objects.

  • Kubernetes cluster Default Storage Class defined and ready to use.

Storage requirements

Dynamic provisioning is required to create persistent volumes. If you don’t enable dynamic provisioning, you will have to manually create a persistent volume.

Because Jenkins is highly dependent upon the filesystem, the underlying storage provider must provide minimal input/output operations per second (IOPS) and latency.

SSD disks are recommended for production usage.

Table 1. Storage recommendations for GKE
Single AZ Multiple AZ High Availability (HA)

Install High Availability on GKE

To install High Availability in GKE:

  1. Set up a storage class with ReadWriteMany access mode.

    CloudBees recommends setting this up in Google Filestore. For more information, refer to the Google Cloud Platform (GCP) documentation on the Filestore CSI driver. Be sure to use an SSD-based service tier, as HDD latencies could result in poor performance.
  2. Prepare the Helm values. The following example can be used as a starting point:

    OperationsCenter:
      HostName: cloudbees-ci.example.com
      Protocol: https
      Platform: gke
      Ingress:
        Class: nginx
    Persistence:
      # default from `gcloud container clusters create … --addons=GcpFilestoreCsiDriver`:
      StorageClass: premium-rwx

Ingress requirements

CloudBees CI on modern cloud platforms requires an Ingress controller and has been tested using the Kubernetes NGINX Ingress Community version. Ingress-nginx is the only supported controller.

CloudBees CI creates one Ingress object for the operations center and one for each controller.

If you use an unsupported Ingress controller, you may need to add additional configurations for domains, hostnames, WebSocket, or TCP pass-through. CloudBees documentation can help you with that, but CloudBees does not support this kind of controller. In this case, you must install and configure your Ingress controller and adjust your CloudBees CI chart values according to your situation.

If you plan to provide High Availability (active/active), the load balancer must be configured to enable sticky sessions or session affinity.

Creating your GKE Cluster

To create a Google Kubernetes Engine (GKE) cluster refer to the official Google documentation Create a GKE cluster.

More information on administering a Google Kubernetes cluster is available from the Kubernetes Engine How-to Guides.

More information on Kubernetes concepts is available from the Kubernetes site, including: