Troubleshoot WEKA Operator deployments
Diagnose and resolve common issues encountered during WEKA Operator deployment and operation.
Pod stuck in pending state
Symptom: A WekaContainer pod remains in Pending state and does not progress.
Procedure
Describe the pod to identify the scheduling issue:
kubectl describe pod <pod-name> -n <namespace>Review the
Eventssection of the output and match the condition to a resolution:
Common pending conditions and resolutions
Pod blocked on weka.io/drives
The operator cannot allocate the required drives for the WekaContainer. Either more drives were requested than are available on the node, or too many driveContainers are already running.
Verify that drives are signed and that the number of drives requested in the WekaCluster spec does not exceed those available on the target nodes.
Image pull failure
The imagePullSecret is missing, incorrect, or not present in the target namespace.
Verify that a valid robot secret for quay.io exists in every namespace where WEKA resources are deployed. Each deployment requires a unique secret.
Insufficient resources
The node does not have enough CPU, memory, or HugePages to schedule the pod.
Verify node resource availability and confirm HugePages are configured correctly. See [Configure HugePages for Kubernetes worker nodes].
No matching node
The pod's nodeSelector does not match any available node labels.
WekaContainers staying in WaitForDrivers
Symptom: WekaContainers remain in WaitForDrivers state and do not progress to Starting.
Cause: The Drivers-Loader cannot obtain the kernel driver. This occurs when the driver distribution service is unreachable, the driver package is unavailable for the node's kernel version, or kernel headers are missing on the build server.
Procedure
Confirm the driver distribution service is reachable from the node:
kubectl exec -n <namespace> <weka-pod> -- curl -v <driversDistService-url>Check the Drivers-Loader logs for connectivity or signature errors:
Verify that
driversDistServicein the WekaCluster or WekaClient spec points to the correct endpoint:
For locally-built drivers, confirm that kernel headers matching the running kernel are installed on the build server:
If the driver package is missing for the specific kernel version, see Driver download failures.
WekaClient containers stuck in Terminating
Symptom: WekaClient pod remains in Terminating state for an extended period.
Cause: The container is in Draining state, waiting for active mounts to be released before shutdown. This is expected behavior during deletion. The pod does not complete termination until all mounts are unmounted by the applications using them.
Procedure
Check the container state:
Identify active mounts on the node:
Coordinate with application owners to unmount active WEKA filesystems on the affected node before the container can terminate cleanly.
Do not force-delete a pod in Draining state. See Do not force-delete WEKA pods.
Do not force-delete WEKA pods
Force-deleting a WEKA pod does not remove the underlying WekaContainer resource. The operator immediately recreates the pod on the same node, and the root cause remains unresolved.
To move or remove a container, delete the WekaContainer resource:
The operator then recreates the container, schedules a fresh pod, and applies the current nodeSelector rules. For client containers with active mounts, resolve the mounts before deleting the WekaContainer resource.
WekaCluster never reaching StartingIO
Symptom: The WekaCluster remains in WaitForDrives and does not progress to StartingIO.
Cause: The cluster has not received enough signed drives to meet the threshold defined in startIoConditions.minNumDrives.
Procedure
Check the current cluster status:
Verify that the
sign-drivesWekaPolicy has been applied:
Confirm that the
weka.io/drivesextended resource is present on the target nodes:
If
weka.io/drivesis missing, the drive discovery process has not completed. Verify that thesign-drivesWekaPolicynodeSelectormatches the labels on the backend nodes:
Re-apply the sign-drives policy if needed:
Confirm that the number of available drives meets or exceeds
startIoConditions.minNumDrivesin the WekaCluster spec.
WekaCluster or WekaClient not creating WekaContainers
Symptom: A WekaCluster or WekaClient is applied successfully but no WekaContainers are created.
Cause: The nodeSelector in the CR does not match any node labels in the cluster. The operator cannot schedule containers on nodes that do not satisfy the selector.
Procedure
Retrieve the
nodeSelectorfrom the WekaCluster or WekaClient:
Verify that at least one node carries the required labels:
If no nodes match, apply the correct label to the target nodes:
For CSI issues where the CSI plugin is not functioning, confirm that the
nodeSelectoron the CSI installation and the WekaClient match. A mismatch prevents the CSI node plugin from running on the same nodes as the WEKA client pods.
CSI not functioning
Symptom: Persistent Volume Claims are not being provisioned or mounted.
Cause: The nodeSelector on the CSI installation and the WekaClient do not match, preventing the CSI node plugin from co-locating with the WEKA client pods.
Procedure
Retrieve the
nodeSelectorfrom the WekaClient:
Retrieve the
nodeSelectorfrom the CSI node plugin DaemonSet:
Ensure both selectors match. Update the CSI configuration or WekaClient spec to align them.
Verify that the CSI node pods are running on the same nodes as the WekaClient pods:
Related topics
WekaCluster and WekaContainer lifecycle
Last updated