前置条件
已在云产品权限声明一章中声明开启了持久化存储能力。
说明
云产品需要持久化数据存储能力时,ECP平台可提供基于Ceph的PVC存储能力。使用PVC时,需要在statefulset控制器中声明PVC,不建议在deployment等无状态资源中声明PVC,否则挂载了PVC存储的deployment可能会出现镜像更新后无法升级的问题。
示例
以下示例中,演示了 mycloud-product 通过 statefulset-dashboard-api.yaml 启动了一个 dashboard-api 的 pod,并声明了一个名为 data-pvc 的持久化存储,挂载到了backend-api 容器中。
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: dashboard-api
labels:
app: dashboard-api
spec:
serviceName: dashboard-api
replicas: 1
selector:
matchLabels:
app: dashboard-api
template:
metadata:
labels:
app: dashboard-api
spec:
nodeSelector:
{{ .Values.labels.node_selector_key }}: {{ .Values.labels.node_selector_value }}
containers:
- name: backend-api
image: {{ .Values.images.tags.backend-api }}
imagePullPolicy: {{ .Values.images.pull_policy }}
ports:
- name: http
containerPort: {{ .Values.conf.container_port }}
volumeMounts:
- name: data-pvc
mountPath: /var/lib/pgsql/data
subPath: pgsql/data
- name: data-pvc
mountPath: /var/log/ambari-server/
subPath: backend/log
volumeClaimTemplates:
- metadata:
name: data-pvc
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: {{ .Values.pvc.storage }}
storageClassName: {{ .Values.pvc.storageClassName }}