7.3. 分配存储资源

您可以为 Data Grid 服务 pod 分配存储,但不能为缓存服务 pod。

默认情况下,Data Grid Operator 为持久性卷声明分配 1Gi。但是,您应该调整 Data Grid 服务 pod 可用的存储量,以便 Data Grid 可在关闭过程中保留集群状态。

重要

如果可用容器存储小于可用内存,则可能会发生数据丢失。

流程

  1. 使用 spec.service.container.storage 字段分配存储资源。
  2. 根据需要配置 ephemeralStorage 字段或 storageClassName 字段。

    注意

    这些字段是互斥的。仅为您的 Infinispan CR 添加其中之一。

  3. 应用更改。

临时存储

spec:
  service:
    type: DataGrid
    container:
      storage: 2Gi
      ephemeralStorage: true

StorageClass 对象的名称

spec:
  service:
    type: DataGrid
    container:
      storage: 2Gi
      storageClassName: my-storage-class

字段描述

spec.service.container.storage

指定 Data Grid 服务 pod 的存储量。

spec.service.container.ephemeralStorage

定义存储是临时还是永久的。将值设为 true 以使用临时存储,这意味着集群关闭或重启时会删除存储中的所有数据。默认值为 false,即存储是永久的。

spec.service.container.storageClassName

指定用于持久性卷声明(PVC)的 StorageClass 对象的名称。如果包含此字段,您必须将现有存储类指定为值。如果没有包含此字段,持久性卷声明将使用 storageclass.kubernetes.io/is-default-class 注解设置为 true 的存储类。

7.3.1. 持久性卷声明 (PVC)

Data Grid Operator 创建一个持久性卷声明(PVC),并在以下位置挂载容器存储:
/opt/infinispan/server/data

缓存

在创建缓存时,Data Grid 会在集群重启后永久存储其配置,以便缓存可用。这适用于 Cache 服务和 Data Grid 服务 pod。

data

在缓存服务 pod 的集群中,数据一直是易失性。关闭集群时,会永久丢失数据。

如果您希望 Data Grid 服务 pod 在集群关闭过程中保留数据,使用基于文件的 缓存存储,方法是将 <file-store /> 元素添加到 Data Grid 缓存配置中。