...
spec:
config:
features:
"kubernetes.podspec-persistent-volume-claim": enabled
"kubernetes.podspec-persistent-volume-write": enabled
...
某些无服务器应用程序需要永久数据存储。通过配置不同的卷类型,您可以为 Knative 服务提供数据存储。Serving 支持挂载诸如secret
、configMap
、projected
和 emptyDir
等卷类型。
您可以为 Knative 服务配置持久卷声明 (PVC)。持久卷类型作为插件实现。要确定是否有任何可用的持久卷类型,您可以检查集群中可用的或已安装的存储类。支持持久卷,但需要启用功能标志。
挂载大型卷可能会导致应用程序启动时间显著延迟。 |
要启用 Knative Serving 使用 PVC 并写入 PVC,请修改KnativeServing
自定义资源 (CR) 以包含以下 YAML
...
spec:
config:
features:
"kubernetes.podspec-persistent-volume-claim": enabled
"kubernetes.podspec-persistent-volume-write": enabled
...
kubernetes.podspec-persistent-volume-claim
扩展控制是否可以将持久卷 (PV) 与 Knative Serving 一起使用。
kubernetes.podspec-persistent-volume-write
扩展控制 Knative Serving 是否可以访问具有写入访问权限的 PV。
要声明 PV,请修改您的服务以包含 PV 配置。例如,您可能有一个具有以下配置的持久卷声明
使用支持您请求的访问模式的存储类。例如,您可以使用
|
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: example-pv-claim
namespace: my-ns
spec:
accessModes:
- ReadWriteMany
storageClassName: ocs-storagecluster-cephfs
resources:
requests:
storage: 1Gi
在这种情况下,要声明具有写入访问权限的 PV,请按如下方式修改您的服务
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
namespace: my-ns
...
spec:
template:
spec:
containers:
...
volumeMounts: (1)
- mountPath: /data
name: mydata
readOnly: false
volumes:
- name: mydata
persistentVolumeClaim: (2)
claimName: example-pv-claim
readOnly: false (3)
1 | 卷挂载规范。 |
2 | 持久卷声明规范。 |
3 | 启用只读访问的标志。 |
要在 Knative 服务中成功使用持久性存储,您需要额外的配置,例如 Knative 容器用户的用户权限。 |