Preparing your GKE Cluster

To deploy the Hydrolix platform you should create project (optional) and create the Google Kubernetes (GKE) Cluster.

Create a Google Project (Optional)

You may have already created the Google Project you want to deploy Hydrolix into, if you havn't you can use the following command in gcloud to create it for you:

gcloud projects create hydrolix-cluster

πŸ“˜

Remember to Update you environment variable

export PROJECT_ID=<YOUR NEW PROJECT ID>

Deploy the Kubernetes Cluster

To deploy a Kubernetes Cluster into this new project, we recommend using the command below as we know this has sufficient node and capacity sizing for a basic load.

gcloud beta container --project "$PROJECT_ID" clusters create "$CLIENT_ID" --region "$REGION" --no-enable-basic-auth --release-channel "regular" --machine-type "n2-standard-16" --image-type "COS_CONTAINERD" --disk-type "pd-standard" --disk-size "256" --metadata disable-legacy-endpoints=true --scopes "https://www.googleapis.com/auth/devstorage.read_write","https://www.googleapis.com/auth/logging.write","https://www.googleapis.com/auth/monitoring","https://www.googleapis.com/auth/servicecontrol","https://www.googleapis.com/auth/service.management.readonly","https://www.googleapis.com/auth/trace.append" --max-pods-per-node "110" --num-nodes "3" --logging=SYSTEM,WORKLOAD --monitoring=SYSTEM --enable-ip-alias --network "projects/$PROJECT_ID/global/networks/default" --subnetwork "projects/$PROJECT_ID/regions/$REGION/subnetworks/default" --no-enable-intra-node-visibility --default-max-pods-per-node "110" --enable-autoscaling --min-nodes "0" --max-nodes "20" --no-enable-master-authorized-networks --addons HorizontalPodAutoscaling,HttpLoadBalancing,GcePersistentDiskCsiDriver --enable-autoupgrade --enable-autorepair --max-surge-upgrade 1 --max-unavailable-upgrade 0 --enable-shielded-nodes

The command creates a single node pool:

default-pool

  • Count: Autoscale 0-20
  • Type: n2-standard-32

πŸ“˜

Account Scaling

Some users may have scale limits on their account. If so you should ensure you have the ability to scale the following instance sizes. Note this scale is the initial basic scale that is deployed when the architecture is created.

🚧

Recent CPU instruction only

At this time only Recent instruction sets can be used, this means Autopilot or the E2 family of instance types are unsupported.

Ensure your Kubernetes nodes have permission to read from and write to cloud storage. You may need to create a role binding with a command similar to the following:

kubectl create clusterrolebinding CLUSTERROLEBINDING_NAME \
    --clusterrole cluster-admin \
    --user UNIQUE_ID

To manage your Kubernetes cluster in GCP follow the instruction from google documentation.

Create a dedicated namespace in your Kubernetes Cluster:

kubectl create namespace $CLIENT_ID

For ease of use, set your new namespace as a default:

kubectl config set-context --current --namespace="$CLIENT_ID"

Create a Google Storage Bucket

Hydrolix needs access to a google cloud storage bucket to store all the data, the next step is to create this bucket via google cloud console cli:

gsutil mb -l $REGION gs://$CLIENT_ID

Did this page help you?