# Running on GCP

In this quickstart guide, you will set up a Kubernetes Cluster on [Google Kubernetes Engine(GKE)](https://cloud.google.com/kubernetes-engine)

## 1. Tooling Installation

### **1.1 Install Kubectl**

Follow this link (<https://kubernetes.io/docs/tasks/tools/install-kubectl>) to install kubectl.

*For Mac users*

```bash
brew install kubernetes-cli
```

Check kubectl version after installation.

```
kubectl version
```

{% hint style="info" %}
Quickstart scripts are tested under kubectl client version v1.16.3 and server version v1.13.12
{% endhint %}

### **1.2 Install Helm**

Follow this link (<https://helm.sh/docs/using_helm/#installing-helm>) to install helm.

*For Mac users*

```bash
brew install kubernetes-helm
```

Check helm version after installation.

```
helm version
```

{% hint style="info" %}
This quickstart provides helm supports for helm v3.0.0 and v2.12.1. Choose the script based on your helm version.
{% endhint %}

### **1.3 Install Google Cloud SDK**

To install Google Cloud SDK, see [Install the gcloud CLI](https://cloud.google.com/sdk/docs/install)

#### *1.3.1 For Mac users*

* *Install Google Cloud SDK*

```bash
curl https://sdk.cloud.google.com | bash
```

Restart your shell

```
exec -l $SHELL
```

## **2. (Optional) Initialize Google Cloud Environment**

```
gcloud init
```

## 3. (Optional) Create a Kubernetes cluster(GKE) in Google Cloud

This script will create a 3 node cluster named **pinot-quickstart** in **us-west1-b** with **n1-standard-2** machines for demo purposes.

Modify the parameters in the following example command with your gcloud details:

```bash
GCLOUD_PROJECT=[your gcloud project name]
GCLOUD_ZONE=us-west1-b
GCLOUD_CLUSTER=pinot-quickstart
GCLOUD_MACHINE_TYPE=n1-standard-2
GCLOUD_NUM_NODES=3
gcloud container clusters create ${GCLOUD_CLUSTER} \
  --num-nodes=${GCLOUD_NUM_NODES} \
  --machine-type=${GCLOUD_MACHINE_TYPE} \
  --zone=${GCLOUD_ZONE} \
  --project=${GCLOUD_PROJECT}
```

Use the following command do monitor cluster status:

```
gcloud compute instances list
```

Once the cluster is in **RUNNING** status, it's ready to be used.

## **4. Connect to an existing cluster**

Run the following command to get the credential for the cluster **pinot-quickstart** that you just created:

```
GCLOUD_PROJECT=[your gcloud project name]
GCLOUD_ZONE=us-west1-b
GCLOUD_CLUSTER=pinot-quickstart
gcloud container clusters get-credentials ${GCLOUD_CLUSTER} --zone ${GCLOUD_ZONE} --project ${GCLOUD_PROJECT}
```

To verify the connection, run the following:

```
kubectl get nodes
```

## 5. Pinot quickstart

Follow this [Kubernetes quickstart](https://docs.pinot.apache.org/release-1.0.0/basics/getting-started/kubernetes-quickstart) to deploy your Pinot demo.

## 6. Delete a Kubernetes Cluster

```
GCLOUD_ZONE=us-west1-b
gcloud container clusters delete pinot-quickstart --zone=${GCLOUD_ZONE}
```


---

# 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://docs.pinot.apache.org/release-1.0.0/basics/getting-started/public-cloud-examples/gcp-quickstart.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.
