'Kubernetes OpenSearch Deployment | "no persistent volumes available for this claim and no storage class is set" error

We deployed OpenSearch using Kubernetes according documentation instructions on 3 nodes cluster (https://opensearch.org/docs/latest/opensearch/install/helm/) , after deployment pods are on Pending state and when checking it, we see following msg: " persistentvolume-controller no persistent volumes available for this claim and no storage class is set " Can you please advise what could be wrong in our OpenSearch/Kubernetes deployment or what can be missing from configuration perspective?

sharing some info:

Cluster nodes:

[root@I***-M1 ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
ir***-m1 Ready control-plane,master 4h34m v1.23.4
ir***-w1 Ready 3h41m v1.23.4
ir***-w2 Ready 3h19m v1.23.4

Pods State:

[root@I****1 ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
opensearch-cluster-master-0 0/1 Pending 0 80m
opensearch-cluster-master-1 0/1 Pending 0 80m
opensearch-cluster-master-2 0/1 Pending 0 80m


[root@I****M1 ~]# kubectl describe pvc
Name:          opensearch-cluster-master-opensearch-cluster-master-0
Namespace:     default
StorageClass:
Status:        Pending
Volume:
Labels:        app.kubernetes.io/instance=my-deployment
               app.kubernetes.io/name=opensearch
Annotations:   <none>
Finalizers:    [kubernetes.io/pvc-protection]
Capacity:
Access Modes:
VolumeMode:    Filesystem
Used By:       opensearch-cluster-master-0
Events:
  Type    Reason         Age                       From                         Message
  ----    ------         ----                      ----                         -------
  Normal  FailedBinding  2m24s (x18125 over 3d3h)  persistentvolume-controller  **no persistent 
  volumes available for this claim and no storage class is set**
  .....

[root@IR****M1 ~]# kubectl get pv
NAME                                                    CAPACITY   ACCESS MODES   RECLAIM 
POLICY   STATUS      CLAIM   STORAGECLASS   REASON   AGE
opensearch-cluster-master-opensearch-cluster-master-0   30Gi       RWO            Retain          Available           manual                  6h24m
opensearch-cluster-master-opensearch-cluster-master-1   30Gi       RWO            Retain               Available           manual                  6h22m
opensearch-cluster-master-opensearch-cluster-master-2   30Gi       RWO            Retain          Available           manual                  6h23m
task-pv-volume                                          60Gi       RWO            Retain   Available           manual                  7h48m       


[root@I****M1 ~]# kubectl get pvc
NAME                                                    STATUS    VOLUME   CAPACITY   ACCESS  MODES   STORAGECLASS   AGE
opensearch-cluster-master-opensearch-cluster-master-0   Pending   3d3h                                                 
opensearch-cluster-master-opensearch-cluster-master-1   Pending   3d3h                                                   
opensearch-cluster-master-opensearch-cluster-master-2   Pending   3d3h                                                    


Solution 1:[1]

...no storage class is set...

Try upgrade your deployment with storage class, presumed you run on AWS EKS: helm upgrade my-deployment opensearch/opensearch --set persistence.storageClass=gp2

If you are running on GKE, change gp2 to standard. On AKS change to default.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1