elasticsearch - 对图像应用更改后数据丢失
问题描述
我正在尝试将 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。
推荐阅读
- javascript - 如何从元素 JavaScript 中获取价值
- spring - 实体具有相同名称时的 Spring JPA 覆盖机制
- c++ - std::find_if() 的奇怪行为
- arduino - 有没有办法将板从 Arduino 板管理器添加到 CLion Arduino 插件?
- c# - 映射属性“角色”(用户表中的外键)与角色表 dotNet Core
- c - 在C中打印反转字符串数组
- vb.net - 在 vb.net 中创建一个 cd\DVD 驱动器
- html - 将 HTML 选择存储到变量中/在 Google 表格中使用该数据
- macos - 如何使用 LLVM 在 MacOS 上构建 ELF?
- c++ - if constexpr 内部的 requires 子句有问题