Skip to content

Deploying onos micro-services on GCP with HELM

This page provides a set of instructions to deploy micro-onos with HELM on the Google Compute Platform, a.k.a. GCP.

Prerequisites

The following set of instruction assumes:

  • Google cloud account is set-up, configured and working.
  • Google cloud SDK is installed and as per SDK Install instructions.
  • kubectl CLI tool is installed and working as expected.

Create a project (optional)

To create and use kubernetes cluster on GCP you'll need to have a GCP project.

If you already have a project configured that you can use feel free to skip this step.

To create a project google provides a set of Project instructions please follow them and name your project as you prefer. For consistency this guide will use micro-onos

In short:

gcloud projects create micro-onos

Initialize your gcloud environment with account, project and region

Intitialize

To prime your environment:

gcloud init

Account

when prompted to login please select the same account as the one you have the GCP setup. An example is as following:

You must log in to continue. Would you like to log in (Y/n)?  Y

You are logged in as: [andrea@opennetworking.org].

Project

When prompted to pick the project to work with select the one you have created, in our case micro-onos.

Pick cloud project to use:
 [1] micro-onos
 [2] Create a new project
Please enter numeric choice or text value (must exactly match list
item):  1

Your current project has been set to: [micro-onos].

Region

When prompted for the region

Do you want to configure a default Compute Region and Zone? (Y/n)?

you can leave it to gcloud to manage it or set it youself. If n you select the list of regions can be retreived by

gcloud compute regions list

Create a Kubernetes cluster

To create your kubernetes cluster in the micro-onos cluster:

gcloud container clusters create micro-onos-cluster \
  --enable-stackdriver-kubernetes \
  --subnetwork default \
  --num-nodes 2

This will create a micro-onos-cluster with 2 nodes and logging enabled.

The output of should look something like:

Created [https://container.googleapis.com/v1/projects/micro-onos/zones/europe-west1/clusters/micro-onos-cluster].
To inspect the contents of your cluster, go to: https://console.cloud.google.com/kubernetes/workload_/gcloud/europe-west1/micro-onos-cluster?project=micro-onos
kubeconfig entry generated for micro-onos-cluster.

If you did not let gcloud pick the region you need to add the --region option:

gcloud container clusters create micro-onos-cluster \
  --enable-stackdriver-kubernetes \
  --region europe-west1 \
  --subnetwork default \
  --num-nodes 2

Connect and authorize local environment with the cluster

To connect your local environment to the newly created micro-onos cluster you need to set the compute zone.

gcloud config set compute/zone europe-west1

make sure to have set here the same region the cluster was created in or that you selected at the previous step.

You also need to get the credentials

gcloud container clusters get-credentials micro-onos-cluster

and authenticate

gcloud auth application-default login

Check cluster status

To make sure the cluster is properly created and is accessible:

kubectl cluster-info

the output should look something like

Kubernetes master is running at https://35.187.168.240
GLBCDefaultBackend is running at https://35.187.168.240/api/v1/namespaces/kube-system/services/default-http-backend:http/proxy
Heapster is running at https://35.187.168.240/api/v1/namespaces/kube-system/services/heapster/proxy
KubeDNS is running at https://35.187.168.240/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
Metrics-server is running at https://35.187.168.240/api/v1/namespaces/kube-system/services/https:metrics-server:/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

Deploy micro-onos with Helm

Now that you have your K8s cluster on GCP ready and working there is no difference as having any other k8s cluster. To deploy micro-onos you can easily follow the existing instructions on how to deploy with helm.

Observe cluster status

On the GCP user interface the cluster can be seen cluster

Also the services can be monitored. services

Delete a cluster on GCP

After you have concluded your work remeber to delete the GCP cluster you have created not to incur in useless work and payments.

gcloud container clusters delete micro-onos-cluster