I need help with persistent volumes set while setting up ELK stack to monitor my kubernetes cluster.
I tired
<!-- begin snippet: js hide: false console: true babel: false --><!-- language: lang-html -->helm install elasticsearch elasticsearch
<!-- end snippet -->error : 0/2 nodes are available: 2 pod has unbound immediate PersistentVolumeClaims.
but since i am runnng on prem the persistant voumles are not getting created . How do i specify persistant volumes in the helm install command ?
In glancing through the chart, it looks like it is using Persistent Volume Claim Templates in your Statefulset.
The volumeClaimTemplates will provide stable storage using PersistentVolumes provisioned by a PersistentVolume Provisioner.
The chart checks if persistence.labels.enabled is True, and if it is it adds your labels, and then it adds your annotations, and then finally it uses your .Values.volumeClaimTemplate. So, in the end if you don't change anything in the values, it looks like it will try to create persistent volumes with these specs using your default provisioner:
volumeClaimTemplate:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 30Gi
So, you should check what your default provisioner is
kubectl get storageclasses
For example, mine is aws-ebs, and so in my case it would create AWS EBS Volumes. This doc explains how to change your Default storage class if yours isn't set to something you want.
Depending on the installation method, your Kubernetes cluster may be deployed with an existing StorageClass that is marked as default. This default StorageClass is then used to dynamically provision storage for PersistentVolumeClaims that do not require any specific storage class. See PersistentVolumeClaim documentation for details
You also should be able to specify the Storage Class you want to use, and then pass in something like this in a separate values file:
volumeClaimTemplate:
accessModes: [ "ReadWriteOnce" ]
storageClassName: "my-storage-class"
resources:
requests:
storage: 30Gi
helm install --name elasticsearch elastic/elasticsearch -f values.yaml -f custom-values.yaml