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
Updated about 13 hours ago