我正在尝试将Elasticsearch添加到EKS集群中。但是,每当我应用更改时,我的数据都会丢失。看来我已附加的卷已更改并回收。
metadata:
name: elasticsearch-uat
labels:
component: elasticsearch-uat
spec:
replicas: 1
serviceName: elasticsearch-uat
template:
metadata:
...
spec:
initContainers:
- name: init-sysctl
...
containers:
- name: es
securityContext:
capabilities:
add:
- IPC_LOCK
image: 559076975273.dkr.ecr.us-west-2.amazonaws.com/elasticsearch-s3:v2
env:
...
ports:
- containerPort: 9200
name: http
protocol: TCP
- containerPort: 9300
name: transport
protocol: TCP
volumeMounts:
- mountPath: /data
name: es-storage-uat
updateStrategy:
type: RollingUpdate
volumeClaimTemplates:
- metadata:
namespace: k8
name: es-storage-uat
spec:
storageClassName: gp2
accessModes: [ ReadWriteOnce ]
resources:
requests:
storage: 2Gi
这是一个有状态的集
请帮助我理解这个概念。我不想在任何情况下丢失数据。
提前致谢。
最佳答案
从pv输出中可以清楚地看到PersistentVolume回收策略设置为Delete。这意味着,如果删除了pvc,则PersistentVolume将自动删除。如果删除了pvc,则会丢失数据。
在您的情况下,使用“保留”策略是适当的。使用“保留”策略,如果用户删除PersistentVolumeClaim,则不会删除相应的PersistentVolume。
除此之外,如果您正在使用动态存储,则将存储类的reclaimPolicy字段设置为适当的值。如果在创建StorageClass对象时未指定reclaimPolicy,它将默认为Delete。