Prepare a Cluster
In order to deploy the Hydrolix data platform on GCP, you first need to set up a Google Kubernetes Engine (GKE) cluster.
Set Environment Variables⚓︎
To begin, set up some environment variables using an env.sh script. Replace the < > values below with your actual values:
Load these environment variables with the following command:
Create a Google Project⚓︎
👍 Already Created a Google Project?
If you've already created a Google Project for Hydrolix, skip this step.
Use the following command in gcloud to create a Google Project:
Once you've created a project, enable the IAM Google API for the project.
Add Your Project ID to env.sh⚓︎
We recommend adding your project ID to your environment variables. Run the following command to get the project ID for your current Google Project:
Add the following line to env.sh, replacing "your project id" with your actual project ID:
Finally, run the following command to load the new environment variable:
Create a Google Storage Bucket⚓︎
👍 Already Created a Google Cloud Storage Bucket?
If you've already created a Google Cloud Storage Bucket for Hydrolix, skip this step.
Hydrolix needs access to a google cloud storage bucket for data storage. Run the following command to create a bucket through the Google Cloud Console CLI:
Deploy a Kubernetes Cluster⚓︎
Next, you'll deploy a Kubernetes Cluster into the project. The following command creates a single node pool with the following characteristics:
- default-pool
- Count: Autoscale 0-20
- Type:
n2-standard-16
This pool provides sufficient node and capacity sizing for a basic load.
Account Scaling
Some users may have scale limits on their account. Ensure you have the ability to scale the instance sizes.
Workload Identity
The deployment uses Google's Workload Identity to access Google Cloud services in a secure and manageable way. For more information, see the Workload Identity documentation. Any new node pools should have this enabled as it is used by a number of the services deployed.
For more information about the options specified in this command, see the gcloud container clusters create reference.
Create a Service Account for the Cluster⚓︎
The cluster uses a service account to get access to Google components like Google Cloud Storage. Run the following command to create a service account:
Next, add the service account name to your environment variables by adding the following line to env.sh:
Load the new environment variable:
Grant the service account permissions to access the storage bucket:
Run the following commands to grant the hydrolix, ingest, kinesis-coordinator, merge-controller, turbine-api, and vector services permission to use the service account you created:
Verify successful application of grants.
To manage access to your Kubernetes cluster in GCP, see Google's documentation on cluster access.
Create a k8s Namespace⚓︎
Create a dedicated namespace in your Kubernetes Cluster:
For ease of use, set your new namespace as a default: