Google Kubernetes Engine and WEKA over POSIX deployment
A step-by-step guide to setting up Google Kubernetes Engine (GKE) with WEKA on Google Cloud Platform (GCP), enhancing storage and scalability for demanding Kubernetes workloads.
Introduction
Google Kubernetes Engine (GKE) is a managed Kubernetes service for deploying, managing, and scaling containerized applications. WEKA is a high-performance, scalable storage platform that integrates seamlessly with Kubernetes clusters to provide persistent storage for demanding containerized applications and workflows.
Combining GKE and WEKA results in an easily automated and managed Kubernetes environment, delivering best-in-class performance at scale.
Requirements for WEKA over POSIX with GKE
GKE must be deployed in Standard mode.
GKE Worker nodes must be configured with Ubuntu OS.
If GPUDirect-TCPX (supported on GKE only with Google Container Optimized OS) is required, configure WEKA over NFS. For details, see Manage the NFS protocol.
Workflow
Deploy GKE in Standard mode with Ubuntu OS.
Set up WEKA client on existing GKE worker nodes.
Configure automated WEKA setup client on worker nodes.
Install and configure the WEKA CSI plugin.
Set up WEKA storage for GKE pods.
1. Deploy GKE in Standard mode with Ubuntu OS
Follow these steps to deploy GKE in Standard mode with Ubuntu OS for the worker nodes. For complete GKE documentation, visit the GCP documentation.
Procedure:
Go to the GCP menu, select Kubernetes Engine, and then Clusters.
Click CREATE to create a new cluster.
If prompted, click SWITCH TO STANDARD CLUSTER. This mode also enables SSH access to worker nodes, which is necessary for installing the WEKA POSIX clients.
Change from a regional to a zonal setup. Select the zone where the WEKA Cluster management IPs are located to ensure optimal communication and performance. This step ensures seamless communication between GKE and the WEKA cluster.
Adjust the node pool settings: Go to Nodes within the default-pool under NODE POOLS in the GKE console, and change the Image type to Ubuntu with containerd (ubuntu_containerd).
Ensure worker nodes meet a minimum configuration of 8 vCPUs and 32 GB RAM. The WEKA client requires a minimum of 2 vCPUs and 5 GB of RAM.
If the GKE cluster was set up in advance, deploy the WEKA cluster to the same networking VPC and subnet. Otherwise, ensure that the GKE cluster networking is configured within the same VPC and subnet as the WEKA management IPs. Aligning networking elements per the recommendation will ensure optimal performance.
Click CREATE to create the cluster.
Wait for the cluster status to indicate Ready or Green before proceeding with further configuration or deployment tasks.
2. Set up WEKA client on existing GKE worker nodes
Perform this procedure for each GKE worker node individually.
Any new GKE worker nodes added later will require these steps for WEKA client installation unless the following automation steps are implemented.
Before You Begin
Ensure SSH access to the GKE worker nodes is available to install the WEKA client.
Procedure:
Identify the names of the GKE worker nodes where the WEKA client will be installed.
Go to Google Cloud Platform > Compute Engine > VM Instance console. Locate the identified GKE worker node, select SSH connect from the dropdown menu, and choose Open in browser window to initiate the SSH connection.
To avoid CPU pinning conflicts with GKE, start the WEKA client using a stateless client mount. Authorize the SSH connection, then add the WEKA client from the existing WEKA cluster. For details, see the Add clients to an on-premises WEKA cluster procedure.
3. Configure automated WEKA setup client on worker nodes
Google Cloud Platform (GCP) allows the addition of startup scripts at the project level, ensuring each new instance runs the script. By using metadata lookups, the WEKA client installation you can restrict to GKE cluster systems.
With auto-scaling enabled, GKE automatically adds and sets up the WEKA client on each new worker node.
Procedure:
In the GCP Compute Engine console, scroll to the bottom of the left-side menu.
Select Metadata under the Settings section.
Click EDIT, then select + ADD ITEM.
Set the key name to startup-script (no spaces), and paste the following GKE WEKA client install script into the Value field. Replace the following input values according to your environment:
WEKA_FS (line 11)
WEKA_HOSTS (line 17)
GKE_CLUSTER_NAME (line 99)
After adding the startup script, click SAVE at the bottom of the page.
Test the script:
Increase the Node Pools node count.
Check the client list in WEKA UI to verify that the new clients have been added.
4. Install and configure the WEKA CSI plugin
To install and configure the WEKA CSI plugin, follow the procedures in the WEKA CSI Plugin section.
You may need to adjust the steps according to your specific setup and requirements.
5. Set up WEKA storage for GKE pods
To set up WEKA storage for use by GKE pods, follow the procedures in theDynamic and static provisioning section, in the CSI Plugin section.