Hi fellow users,
I've deployed the following single-node setup in my k8s cluster:
eck operator: 1.5.0
elasticsearch: 7.12.0
with the following config:
apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
name: sample
namespace: sample
spec:
version: 7.12.0
nodeSets:
- name: default
count: 1
config:
node.store.allow_mmap: false
node.master: true
node.ingest: true
node.data: true
volumeClaimTemplates:
- metadata:
name: sample-elastic-data
spec:
accessModes:
- ReadWriteOnce
storageClassName: nfs-client
resources:
requests:
storage: 50Gi
http:
service:
spec:
type: LoadBalancer
After that everything seemed to work fine, a PVC and PV where created and bound with the proper resource requirements. I could see the provisioner created the appropriate folders and stuff.
But when checking the definition for the created pod I discovered that the elasticsearch pod is not using the created PV and PVC for storing data. It's defined in the volumes
section but not in volumeMounts
. The volume is therefore not used for storing the data.
volumeMounts:
- mountPath: /mnt/elastic-internal/downward-api
name: downward-api
readOnly: true
- mountPath: /usr/share/elasticsearch/bin
name: elastic-internal-elasticsearch-bin-local
- mountPath: /mnt/elastic-internal/elasticsearch-config
name: elastic-internal-elasticsearch-config
readOnly: true
- mountPath: /usr/share/elasticsearch/config
name: elastic-internal-elasticsearch-config-local
- mountPath: /usr/share/elasticsearch/plugins
name: elastic-internal-elasticsearch-plugins-local
- mountPath: /usr/share/elasticsearch/config/http-certs
name: elastic-internal-http-certificates
readOnly: true
- mountPath: /mnt/elastic-internal/probe-user
name: elastic-internal-probe-user
readOnly: true
- mountPath: /usr/share/elasticsearch/config/transport-remote-certs/
name: elastic-internal-remote-certificate-authorities
readOnly: true
- mountPath: /mnt/elastic-internal/scripts
name: elastic-internal-scripts
readOnly: true
- mountPath: /usr/share/elasticsearch/config/transport-certs
name: elastic-internal-transport-certificates
readOnly: true
- mountPath: /mnt/elastic-internal/unicast-hosts
name: elastic-internal-unicast-hosts
readOnly: true
- mountPath: /mnt/elastic-internal/xpack-file-realm
name: elastic-internal-xpack-file-realm
readOnly: true
- mountPath: /usr/share/elasticsearch/logs
name: elasticsearch-logs
volumes:
- name: sample-elastic-data
persistentVolumeClaim:
claimName: sample-elastic-data-sample-es-default-0
- downwardAPI:
defaultMode: 420
items:
- fieldRef:
apiVersion: v1
fieldPath: metadata.labels
path: labels
name: downward-api
- emptyDir: {}
name: elastic-internal-elasticsearch-bin-local
- name: elastic-internal-elasticsearch-config
secret:
defaultMode: 420
optional: false
secretName: sample-es-default-es-config
- emptyDir: {}
name: elastic-internal-elasticsearch-config-local
- emptyDir: {}
name: elastic-internal-elasticsearch-plugins-local
- name: elastic-internal-http-certificates
secret:
defaultMode: 420
optional: false
secretName: sample-es-http-certs-internal
- name: elastic-internal-probe-user
secret:
defaultMode: 420
items:
- key: elastic-internal-probe
path: elastic-internal-probe
optional: false
secretName: sample-es-internal-users
- name: elastic-internal-remote-certificate-authorities
secret:
defaultMode: 420
optional: false
secretName: sample-es-remote-ca
- configMap:
defaultMode: 493
name: sample-es-scripts
optional: false
name: elastic-internal-scripts
- name: elastic-internal-transport-certificates
secret:
defaultMode: 420
optional: false
secretName: sample-es-default-es-transport-certs
- configMap:
defaultMode: 420
name: sample-es-unicast-hosts
optional: false
name: elastic-internal-unicast-hosts
- name: elastic-internal-xpack-file-realm
secret:
defaultMode: 420
optional: false
secretName: sample-es-xpack-file-realm
- emptyDir: {}
name: elasticsearch-logs
As you can see sample-elastic-data
is not referenced in volumeMounts
and therefore the PV is not used for storage. I suspect the data is just keep as volatile pod state that will disappear once the pod is killed for any reason.
Is this a bug on eck-operator
or in my configuration file?.
Thanks.