如何为 apollo 组件配置存储?
平台上的 apollo 组件,用于支持运营统计数据、日志数据的查询和导出。而导出数据功能,依赖组件的存储配置。
部署平台时,如果没有为 apollo 组件配置存储,则无法使用:
-
平台管理 > 运营统计 模块中的统计报表导出功能和导出记录页面相关功能;
-
运维中心 > 日志 模块中的日志查询结果全部导出功能和导出记录页面相关功能。
操作步骤 1 - 创建 PVC
在 global 集群中 apollo 组件运行的命名空间下,创建一个用于为 apollo 组件提供存储的 PVC(PersistentVolumeClaim,持久卷声明)。
限制与约束:
-
PVC 创建成功后,成功绑定满足匹配条件的 PV,才能为 apollo 组件提供存储能力。
-
需保证 apollo 组件的所有 Pod 共享存储,即 PVC 在 Pod 中的挂载路径(默认为
/apollo/share
)下的数据相同。因此,当 apollo 组件有多个 Pod 实例时,要求与 PVC 绑定的 PV 支持同时被多个 Pod 挂载。提示:当 PV 的类型为
nfs
或cephfs
时,支持挂载该 PVC 的 Pod 共享存储。
操作步骤
-
在左侧导航栏中,单击 集群 > 资源管理。
-
单击导航栏上方集群切换入口,切换至 global 集群。
-
单击 创建资源对象。
-
参照以下示例及参数说明,手动输入 PVC 的 YAML 编排文件内容后单击 创建。
提示:PVC 创建后,需要成功绑定 PV(PersistentVolume,持久卷)才能提供存储能力。
PVC YAML 文件示例:
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: test-meter-pvc ## PVC 的名称 namespace: cpaas-system ## global 集群下 apollo 组件运行的命名空间名称。该命名空间的名称在平台部署时配置,默认为 cpass-system annotations: {} labels: {} spec: storageClassName: '' accessModes: - ReadWriteOnce resources: requests: storage: 2Gi ## PVC 大小,请根据实际需要设置
参数说明:
-
metadata.name:PVC 的名称。
-
metadata.namespace:global 集群下 apollo 组件运行的命名空间名称。该命名空间的名称在平台部署时配置,默认为 cpass-system,请根据实际配置填写。
-
requests.storage:PVC 大小,请根据实际需要设置。
-
操作步骤 2 - 更新 base
修改 global 集群下类型为 ProductBase
名称为 base 的资源,为 apollo 组件设置共享路径。
操作步骤
-
在左侧导航栏中,单击 集群 > 资源管理。
-
单击导航栏上方集群切换入口,切换至 global 集群。
-
搜索类型为
ProductBase
名称为base
的 集群相关 资源。 -
单击 base 右侧的
> 更新。
-
在 YAML(读写) 区域,为 key
spec.valuesOverride
添加如下内容:提示:如果不存在 key
spec.valuesOverride
,请先添加该 key。spec: valuesOverride: "ait/chart-alauda-base": apollo: shareDir: persistentVolumeClaim: {PVC-name} ## 输入上一步骤创建的 PVC 的名称
-
单击 更新 按钮,等待配置生效即可。
验证方法
完成上述两个步骤后,稍等片刻,前往平台管理页面。查看 平台管理 > 运营统计 模块中的统计报表导出功能和导出记录页面相关功能,如果能够正常使用,则表明配置已生效。
常见问题
导出功能仍不可用
请检查 PVC 是否已成功绑定 PV,如未绑定,需要手动创建满足匹配需求的 PV 资源。
导出审计或日志数据时,返回 404 且提示“no such file or directory”
若 apollo 组件有多个 Pod,但为其配置的 PVC 绑定的 PV 不支持共享存储时,会出现此类问题。
请检查 apollo 组件的 Pod 是否共享存储(Pod 存储在 PVC 中的数据相同)。若 apollo 组件的 Pod 无法共享存储,请重新为其配置 PVC,并为 PVC 绑定类型为 nfs
或 cephfs
的 PV。