I have a 3-node Kubernetes cluster running with OpenStack VM (Ubuntu 20). I wanted to create an ElasticSearch Cluster but I have to say that I am a bit confused with the instructions, especially about setting up the PV, PC and StorageClass.
I have now a toleration issue on my pod:
# kc describe pod
...
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 59s (x7 over 7m39s) default-scheduler 0/3 nodes are available: 1 node(s) had taint {node-role.kubernetes.io/master: }, that the pod didn't tolerate, 2 node(s) didn't find available persistent volumes to bind.
What could be the problem?
More information:
k8s-controller eck # kc get es
NAME HEALTH NODES VERSION PHASE AGE
quickstart unknown 7.6.1 ApplyingChanges 12m
k8s-controller eck # kc get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
es-storage 1Gi RWO Retain Available /elasticsearch-data-quickstart-es-default-0 local-storage 15m
k8s-controller eck # kc get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
elasticsearch-data-quickstart-es-default-0 Pending local-storage 11m
k8s-controller eck # kc get storageclass
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
local-storage kubernetes.io/no-provisioner Delete WaitForFirstConsumer false 14m
It looks like you have an available PV, but the PVC stays in a Pending status. Why can't it bind to the available PV? Can you inspect the PVC resource, it may give us more details? kubectl describe pvc elasticsearch-data-quickstart-es-default-0
We really recommend using PVs and PVCs, which work well with local storage.
In your case it looks like you have one PV created, but the Pod can't be scheduled on 2 out of 3 k8s nodes. Your PV looks like a local volume, is there a chance it happens to be located on the 1 k8s node that has the incompatible taint?
1 node(s) had taint {node-role.kubernetes.io/master: }, that the pod didn't tolerate
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.