Knative 服务的卷支持¶
您可以通过配置不同的卷类型为 Knative 服务提供数据存储。Serving 支持挂载 卷类型:emptyDir、secret、configMap 和 projected。支持 持久卷 (PersistentVolumes),但需要启用 功能标志。
警告
挂载大型卷可能会增加应用程序启动时间的显著开销。
下面是一个使用持久卷声明 (PVC) 配合 Knative 服务的示例。
先决条件¶
在您可以为服务配置 PVC 之前,必须在 config-features ConfigMap 中启用此功能,如下所示
kubectl patch --namespace knative-serving configmap/config-features \
--type merge \
--patch '{"data":{"kubernetes.podspec-persistent-volume-claim": "enabled", "kubernetes.podspec-persistent-volume-write": "enabled"}}'
kubernetes.podspec-persistent-volume-claim扩展控制是否可以将持久卷 (PVs) 与 Knative Serving 一起使用。kubernetes.podspec-persistent-volume-write扩展控制是否可以使用写入权限将 PVs 提供给 Knative Serving。
注意
如果您通过 Knative Operator 安装了 Serving,那么您应该 **只** 在相应的 Serving CR 上设置上述功能标志。
步骤¶
- 修改服务的 PVC 配置
apiVersion: serving.knative.dev/v1
kind: Service
...
spec:
template:
spec:
containers:
...
volumeMounts:
- mountPath: /data
name: mydata
readOnly: false
volumes:
- name: mydata
persistentVolumeClaim:
claimName: knative-pv-claim
readOnly: false
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: knative-pv-claim
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi