Step 1: Create a cluster

Before you begin:

These steps assume you have created environment variables in the previous steps. Check them with the following commands:

echo $PROJECT_ID
echo $ANALYTICS_REGION
echo $ORG_NAME
echo $ENV_NAME

This step explains how to set up your shell environment and create a GKE cluster in your Google Cloud project.

Set up your terminal shell

The gcloud tool provides the primary command-line interface for Google Cloud, and kubectl provides the primary command-line interface for running commands against Kubernetes clusters.

  1. Be sure you have gcloud and kubectl installed in your local shell. The gcloud tool provides the primary command-line interface for Google Cloud, and kubectl provides the primary command-line interface for running commands against Kubernetes clusters.

    gcloud -h
    kubectl -h
  2. If you do not have these utilities installed, install them now as follows:
    1. Install the Cloud SDK, which includes the gcloud command-line tool.
    2. After installing Cloud SDK, install the kubectl command-line tool by running the following command:
    3. gcloud components install kubectl
  3. Use the gcloud tool to configure two default settings: your default project and compute region. Configuring these settings makes it easier to run gcloud commands, because gcloud requires that you specify the project and compute region in which you want to work.

    To list the current settings, run the following command:

    gcloud config list

    If a project and/or compute region is not listed, then you need to add them with the commands shown below. If, from the list output, you determine that you need to switch the current settings to reflect your project and compute region, you can also use these commands:

    gcloud config set project $PROJECT_ID
    gcloud config set compute/region $ANALYTICS_REGION
    

    Where:

    • PROJECT_ID is the name of your Google Cloud project.
    • ANALYTICS_REGION is the name of a Google Cloud compute region

Create a GKE cluster

In this step, you will create a Kubernetes cluster in your Google Cloud project (the project you set with the gcloud config command represented by PROJECT_ID).

Create the cluster

  1. Create the CLUSTER_NAME environment variable with the following command (optional):
    export CLUSTER_NAME=cluster-name

    Where cluster-name is the name you choose for the cluster.

  2. Execute the following command to create the cluster. The machine type, number of nodes, and other settings specified in the command create a minimally configured cluster suitable for a trial Apigee hybrid installation.
    gcloud container clusters create $CLUSTER_NAME \
    --machine-type "e2-standard-4" --num-nodes "4" --enable-autoscaling --min-nodes "3" --max-nodes "6"

    Cluster creation can take a few minutes. Upon success, output similar to the following, with a status of RUNNING, is displayed:

    NAME           LOCATION       MASTER_VERSION  MASTER_IP     MACHINE_TYPE   NODE_VERSION   NUM_NODES  STATUS
    apigee-hybrid  us-central1    1.15.12-gke.2   35.222.54.89  e2-standard-4  1.15.12-gke.2             RUNNING

Set the current context

A context is a group of access parameters. Each context contains a Kubernetes cluster, a user, and a namespace. The current context is the cluster that is currently the default for kubectl: all kubectl commands run against that cluster.

Make sure the current gcloud context is set to the cluster you just created.

  1. First, list the contexts to determine which is the current context. In the following example, the current context is gke_hybrid-project_us-central1_apigee-hybrid. The name includes the name of a Google Cloud project (hybrid-project), a region (us-central1), and a cluster name (apigee-hybrid).
    kubectl config get-contexts

    The results should look something like the following example:

    CURRENT   NAME                                             CLUSTER                                          AUTHINFO                                           NAMESPACE
    *         gke_hybrid-project_us-central1_apigee-hybrid     gke_hybrid-project_us-central1_apigee-hybrid     gke_hybrid-project_us-central1_apigee-hybrid
              gke_apigee-project_us-west1_apigee-cluster       gke_apigee-project_us-west1_apigee-cluster       gke_apigee-project_us-west1_apigee-cluster
    
  2. If necessary, set the current context to the cluster you just created (the cluster into which you intend to install Apigee hybrid). Using the previous get-contexts output, you can switch to the correct context, as follows:
    kubectl config use-context context

    Where context is the full context name for your cluster as output by the previous get-contexts command. For example: gke_apigee-project_us-west1_apigee-cluster.

  3. Check the current context to be sure it is set to the intended cluster using the following command:
    kubectl config current-context

    For example:

    gke_apigee-project_us-west1_apigee-cluster

Grant cluster credentials

Cluster credentials give you access to the containers running in the cluster. Fetch your credentials and grant yourself the cluster-admin role:

  1. Fetch the credentials by entering the following command:
    gcloud container clusters get-credentials $CLUSTER_NAME

    Where CLUSTER_NAME is the name is the name of the cluster you created (the cluster into which you intend to install Apigee hybrid).

    You should see a result similar to the following:

    Fetching cluster endpoint and auth data.
    kubeconfig entry generated for example-cluster.
  2. Set the cluster role binding. Execute the following command exactly as shown:
    kubectl create clusterrolebinding cluster-admin-binding \
    --clusterrole cluster-admin --user $(gcloud config get-value account)

    You should see a result similar to the following:

    clusterrolebinding.rbac.authorization.k8s.io/cluster-admin-binding created

Summary

You now have a Kubernetes cluster running in your Google Cloud project. Your shell environment is set up, and you are ready to install the cert-manager and istio services required by Apigee hybrid on your local machine.

1 (NEXT) Step 2: Install cert-manager and ASM 3 4 5