Home > front end >  Kubernetes OpenSearch Deployment | "no persistent volumes available for this claim and no stora
Kubernetes OpenSearch Deployment | "no persistent volumes available for this claim and no stora

Time:03-15

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                                                    

CodePudding user response:

...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.

CodePudding user response:

Thanks, added storage class as follows and getting now new error when executing helm upgrade

cat > storageClass.yaml << EOF
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: standard
  provisioner: kubernetes.io/no-provisioner
  volumeBindingMode: WaitForFirstConsumer
EOF

[root@I****-M1 ~]# kubectl create -f storageClass.yaml
storageclass.storage.k8s.io/standard created

[root@I****-M1 ~]# kubectl get storageclass
NAME       PROVISIONER                    RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE   
standard   kubernetes.io/no-provisioner   Delete          WaitForFirstConsumer false                  41s  

[root@I****M1 ~]#  helm list
NAME            NAMESPACE       REVISION        UPDATED   STATUS          CHART                   APP VERSION                              
opensearch-apm  default         1               2022-03-13 09:41:07.302136455  0200 IST deployed        opensearch-1.8.3        1.2.4



[root@I****-M1 ~]# helm upgrade opensearch-apm opensearch/opensearch --set  persistence.storageClass=standard

Error: UPGRADE FAILED: cannot patch "opensearch-cluster-master" with kind StatefulSet: StatefulSet.apps "opensearch-cluster-master" is invalid: spec: 
**Forbidden: updates to statefulset spec for fields other than 'replicas', 'template', 'updateStrategy', 'persistentVolumeClaimRetentionPolicy' and 'minReadySeconds' are forbidden**

can you please advise what we are doing wrong? or if you can share working procedure to set storage classes on Kubernetes cluster

  • Related