# Google Cloud GKE

## Step 1: Create a Kubernetes cluster

### 1) Create a Google Cloud Platform (GCP) account

As a free option, GCP offers a $300 free credit: <https://console.cloud.google.com/freetrial>

### 2) Install CLI

Install the SDK CLI tool: <https://cloud.google.com/sdk/install>

### 3) Create a Kubernetes cluster (GKE)

To create a new Kubernetes cluster, go to your GCP Console Home Page ([https://console.cloud.google.com](https://console.cloud.google.com/)) and select ***Kubernetes Engine / Clusters.***

![](/files/-LTYDq4SALMs2fmTBfuT)

Then select the CREATE CLUSTER button ![](/files/-LVscEVnNzwAjFUkG5uT) from the top menu.

Enter the Cluster Name, select the Zone based on your location and I’ve selected 2 vCPUs and left the Size to the default value (3).

![GKE cluster creation settings](/files/-LTaoMtgAc-aoR25vp_P)

Once the cluster is created click on the Connect Button on the right hand side of the table:

![Kubernetes clusters list view](/files/-LTaolB_Mrvaic0M5XA6)

This will open a popup with a command to connect to the cluster. Copy it to your clipboard, open a terminal and paste the command into your terminal.

{% hint style="info" %}
*Note: if you are working with an existing cluster, you will need to check if you have an Ingress Controller already installed, you can skip the NGINX Ingress installation (step 2) if that is the case.*
{% endhint %}

## **Step 2: Configure HELM and install NGINX Ingress**

Let's now configure HELM to work in the Cluster. We first need to give HELM permissions to deploy things into the cluster. Download the file below:

{% file src="/files/-L\_lPrftmbS9NZYiRKh-" %}
helm-service-account-role.yaml
{% endfile %}

Run the following commands in your terminal:

```bash
kubectl apply -f helm-service-account-role.yaml
```

```bash
helm init --service-account helm --upgrade
```

In order to be able to expose our services to be accessed from outside the cluster, we need to set up an Ingress Controller, which will automatically create routes to the internal services that we want to expose. To install the NGINX Ingress controller, run the following command:

```bash
helm install stable/nginx-ingress --version 1.5
```

Now that NGINX Ingress Controller is being deployed, we need to wait for it to expose itself using a Public IP. We need this Public IP to interact with our services from outside the cluster. You can find this IP by running the following command:

```bash
kubectl get services
```

Example output with GCP deployment:

![External IP for NGINX Ingress controller.](/files/-LZ5Y8u586Nh_o1Tl08C)

## [Step 3: Deploy Activiti Cloud Full Example](/activiti-7-developers-guide/getting-started/getting-started-activiti-cloud.md#step-3-deploy-activiti-cloud-full-example)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://activiti.gitbook.io/activiti-7-developers-guide/getting-started/getting-started-activiti-cloud/google-cloud-gke.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
