How to Deploy Fusion on Google Kubernetes Engine (GKE)

Fusion supports deployment on Google Kubernetes Engine (GKE). This topic explains how to deploy a Fusion cluster on GKE.

Prerequisites

You need an account on each of these cloud services before you can begin deploying Fusion on GKE:

You also need these tools, installed on your local machine:

Finally, you need the setup_f5_gke.sh script, which creates a default configuration file and launches a GKE cluster. Run setup_f5_gke.sh --help for complete usage information. See How to create a Fusion cluster in GKE for examples.

Overview

These are the high-level steps, explained in detail later in this topic:

1. Set up the Google Cloud SDK (one time only)

These steps set up your local Google Cloud SDK environment so that you’re ready to use the command-line tools to manage your Fusion deployment.

Usually, you only need to perform these setup steps once per local session. After that, you’re ready to create a cluster.

How to set up the Google Cloud SDK
  1. Enable the Kubernetes Engine API.

  2. Log in to Google Cloud: gcloud auth login

  3. Set up the Google Cloud SDK:

    1. gcloud config set compute/zone <zone-name>

      If you are working with regional clusters instead of zone clusters, use gcloud config set compute/region <region-name> instead.

    2. gcloud config set core/account <email address>

    3. New GKE projects only: gcloud projects create <new-project-name>

      If you have already created a project, for example in the Google Cloud Platform console, then skip to the next step.

    4. gcloud config set project <project-name>

    5. gcloud auth configure-docker

2. How to create a Fusion cluster in GKE

When you run setup_f5_gke.sh to create a demo cluster, the script creates a default_fusion_values.yaml file from which it reads parameters for creating your Fusion cluster in GKE.

The values in the default_fusion_values.yaml file are suitable for a single-node demo cluster only. For multi-node clusters, you need to customize the file, then run setup_f5_gke.sh with the --values flag and specify the name of your file.

The steps below show you how to create several kinds of Fusion clusters.

How to create a single-node Fusion demo cluster

A single-node configuration is useful for exploring Fusion in a demo or development environment.

This type of deployment can take at least 12 minutes, plus 3–5 minutes for cluster startup.

How to create a single-node Fusion demo cluster
  1. Run the setup script:

    ./setup_f5_gke.sh -c <cluster> -p <project> -z <zone-name>
    • <cluster> value should be the name of a non-existent cluster; the script will create the new cluster.

    • <project> must match the name of an existing project in GKE.

      Run gcloud config get-value project to get this value, or see the GKE setup instructions.

    • <zone-name> must match the name of the zone you set in GKE.

      Run gcloud config get-value compute/zone to get this value, or see the GKE setup instructions to set the value.

    Upon success, the script shows you where to find the Fusion UI. For example:

    Fusion 5 Gateway service exposed at: 198.51.100.16:6764
  2. Access the Fusion UI by pointing your browser to the IP address and port specified in the setup script’s output.

Create a three-node regional cluster to withstand a zone outage

With a three-node regional cluster, nodes are deployed across three separate availability zones.

In this configuration, we want a ZooKeeper and Solr instance on each node, which allows the cluster to retain ZK quorum and remain operational after losing one node, such as during an outage in one availability zone.

When running in a multi-zone cluster, each Solr node has the solr_zone system property set to the zone it is running in, such as -Dsolr_zone=us-west1-a.

With this setup, you should install a Solr auto-scaling policy that distributes replicas across different zones.

Multiple node pools for workload isolation

This configuration requires a minimum of seven nodes across three node pools:

  • 2 system pools

  • 2 analytics pools

  • 3 search pools