Step 1: Create a cluster

This step explains how to set up your shell environment and create a Kubernetes cluster in your Google Cloud Platform (GCP) project.

Set up your terminal shell

The gcloud tool provides the primary command-line interface for GCP, 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 GCP, 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:
    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 zone in which you want to work.

    To list the current settings:

    gcloud config list

    If a project and/or compute zone 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 compute-region

    Where project-id is the name of your GCP project and compute-regioncompute-region is the name of a GCP compute region. For example: us-central1. For a list of compute regions, see Available regions and zones.

Create a GKE cluster

In this step, you will create a Kubernetes cluster in your GCP project (the project you set with the gcloud config command).

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 "n1-standard-4" --num-nodes "3" --enable-autoscaling --min-nodes "3" --max-nodes "6"

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

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

NAME           LOCATION       MASTER_VERSION  MASTER_IP     MACHINE_TYPE   NODE_VERSION   NUM_NODES  STATUS
apigee-hybrid  us-central1-a  1.13.11-gke.9   35.222.54.89  n1-standard-4  1.13.11-gke.9  3          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-a_apigee-hybrid. The name includes the name of a GCP project (hybrid-project), a region or zone (us-central1-a), and a cluster name (apigee-hybrid):
    kubectl config get-contexts
    CURRENT   NAME                                             CLUSTER                                          AUTHINFO                                           NAMESPACE
    *         gke_hybrid-project_us-central1-a_apigee-hybrid   gke_hybrid-project_us-central1-a_apigee-hybrid   gke_hybrid-project_us-central1-a_apigee-hybrid
              gke_apigee-project_us-west1-a_apigee-cluster     gke_apigee-project_us-west1-a_apigee-cluster     gke_apigee-project_us-west1-a_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). Assuming the previous get-contexts output, if the cluster name you created were apigee-cluster in the region us-west1, you would switch to the gke_apigee-project_us-west1-a_apigee-cluster context, as follows:
    kubectl config use-context gke_apigee-project_us-west1-a_apigee-cluster

    Where gke_apigee-project_us-west1-a_apigee-cluster is the name of the context to switch to.

  3. Check the current context to be sure it is set to the intended cluster. For example:
    kubectl config current-context
     gke_apigee-project_us-west1-a_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:
    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).

  2. Set the cluster role binding. Execute this command exactly as shown:
    kubectl create clusterrolebinding cluster-admin-binding \
    --clusterrole cluster-admin --user $(gcloud config get-value account)

Summary

You now have a Kubernetes cluster running in your GCP project. Your shell environment is set up, and you are ready to install the Apigee hybrid runtime plane software on your local machine.

Next Step

1 NEXT: (2) Install apigeectl 3 4