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.
Be sure you have
gcloud
andkubectl
installed in your local shell. Thegcloud
tool provides the primary command-line interface for Google Cloud, andkubectl
provides the primary command-line interface for running commands against Kubernetes clusters.gcloud -h
kubectl -h
- If you do not have these utilities installed, install them now as follows:
- Install the Cloud SDK,
which includes the
gcloud
command-line tool. - After installing Cloud SDK, install the
kubectl
command-line tool by running the following command:
gcloud components install kubectl
- Install the Cloud SDK,
which includes the
-
Use the
gcloud
tool to configure two default settings: your default project and compute region. Configuring these settings makes it easier to rungcloud
commands, becausegcloud
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
- 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.
- 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.
- 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
- 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
. - 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:
- 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.
- 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