For the complete documentation index, see llms.txt. This page is also available as Markdown.

Deploy WEKA on cloud-managed Kubernetes services

Deploy the WEKA operator on a cloud-managed Kubernetes service to mount WEKA filesystems from application pods running in a managed cluster.

Supported configurations

The following table describes the support levels for different cloud services:

Cloud service
Instance type
WekaCluster (backends)
WekaClient: UDP
WekaClient: DPDK
NIC provisioning for DPDK

Amazon EKS

VM

Supported

Supported

Supported

Operator creates and attaches NICs automatically

Oracle OKE

Bare metal

Supported

Supported

Supported

Manual

Oracle OKE

VM

Not supported

Supported

Supported

Operator verifies required number of NICs

Google GKE

VM

Not supported

Supported

Not Supported

Azure AKS

VM

Not supported

Supported

Not Supported

Prerequisites

Ensure the following conditions are met for all supported cloud environments:

  • A WEKA cluster is deployed and reachable from the managed Kubernetes nodes if deploying only WekaClient.

  • Network access to https://drivers.weka.io is available from all Kubernetes nodes.

  • Quay.io credentials (QUAY_USERNAME and QUAY_PASSWORD) are obtained from WEKA Customer Success.

  • Security groups and network ACLs align with the WEKA operator deployment requirements.

Node configuration

Enable static CPU allocation and reserve core 0 on each client node. Reserve 1.5 GiB using hugepages for the client core.

For the full CPU isolation rationale, HyperThreading sibling guidance, and Kubernetes version-specific reservation options, see WEKA Operator best practices.

For HugePages set up, follow the HugePages procedure in WEKA Operator deployments under Prepare Kubernetes environment.

Use Plan system hardware requirements to calculate the required HugePages allocation for your client nodes.

Cloud-specific configuration

Amazon EKS

Configure IAM roles and node-level resources before deploying the operator.

Cluster IAM role policies:

  • AmazonEKSBlockStoragePolicy

  • AmazonEKSClusterPolicy

  • AmazonEKSComputePolicy

  • AmazonEKSLoadBalancingPolicy

  • AmazonEKSNetworkingPolicy

Node group IAM role policies:

  • AmazonEC2ContainerRegistryPullOnly

  • AmazonEKSWorkerNodeMinimalPolicy

  • AmazonEKS_CNI_Policy

Use the same subnets and security groups as the WEKA cluster when configuring the Amazon EKS node group.

WekaCluster on EKS

When deploying a WEKA cluster on EKS, grant the following additional permissions:

  • autoscaling:DescribeAutoScalingInstances

  • autoscaling:DescribeAutoScalingGroups

  • autoscaling:RecordLifecycleActionHeartbeat

  • autoscaling:CompleteLifecycleAction

  • autoscaling:PutLifecycleHook

Oracle OKE

Bare metal instances are recommended for WekaCluster (backend) deployments and for production DPDK workloads. To provision the Oracle OKE cluster infrastructure, use the terraform-oci-oke Terraform module.

Google GKE

After you create the weka-operator-system namespace, create a gcloud-credentials Kubernetes secret to grant the operator access to GCP APIs. The operator mounts this secret into the driver-builder pod at /var/secrets/google and sets GOOGLE_APPLICATION_CREDENTIALS=/var/secrets/google/service-account.json.

  1. Create a GCP service account key:

  2. Create the Kubernetes secret:

    Ensure the key inside the secret is named service-account.json.

Currently only UDP mode is supported

Azure AKS

Azure AKS supports WekaClient in UDP mode.

Install the WEKA Operator

1. Create namespaces and configure authentication

Create the required namespace and Quay.io image pull secrets for the system and default namespaces:

2. Apply the WEKA Operator CRDs

Replace <weka-operator-version> with the target WEKA Operator version. Verify the version before deployment.

3. Install the WEKA Operator

Use the Helm command for the cloud environment.

For Amazon EKS, Oracle OKE, and Azure AKS:

cleanupRemovedNodes

When enabled, the WEKA Operator automatically deletes backend WekaContainers whose target node is no longer part of the Kubernetes cluster. This prevents stale container resources from accumulating when nodes are scaled down or replaced, which occurs frequently in cloud environments. For cloud deployments, this value defaults to true.

For Google GKE:

GKE-specific notes:

  • gkeCompatibility.disableDriverSigning=true is required because GKE does not currently support signing WEKA kernel drivers with trusted keys. Enforcement of signed kernel drivers is enabled by default on GKE compute node images and disabled by default on GPU node images.

  • nodeAgent.persistencePaths=/mnt/stateful_partition/k8s-weka is required because /opt is read-only on GKE nodes. WEKA persistent data must use a writable partition.

Deploy the WEKA client

1. Label Kubernetes nodes

Apply the WEKA client support label to each worker node that runs WEKA client pods:

2. Configure network interfaces

The ensure-nics WekaPolicy configures additional network interfaces for DPDK mode. Skip this step for UDP-only deployments.

On Amazon EKS, the operator creates and attaches NICs automatically. On Oracle OKE, the operator verifies that the required NICs are available. For Google GKE and Azure AKS, pre-create the NICs on the nodes before applying the policy.

  1. Create the ensure-nics.yaml manifest:

  2. Apply the manifest:

3. Deploy the WEKA client

  1. Create the weka-client.yaml manifest:

    Replace <weka-cluster-ip> with the IP address or load balancer DNS name of the WEKA cluster.

  2. Apply the manifest:

4. Install the CSI plugin

If embedded CSI is not enabled, complete the deployment by installing the WEKA CSI plugin. For details, see the WEKA CSI Plugin topic.

Deploy WekaCluster on Oracle OKE

Oracle OKE with bare metal instances supports full WekaCluster deployment in addition to WekaClient. The WEKA Operator manages the full lifecycle of both backend and client pods on Oracle OKE.

You can use the terraform-oci-oke module to provision the Oracle OKE cluster before installing the WEKA Operator.

Last updated