Finalize pvc support (#5651)

* pvc support

* comments

* fixes

* fix
This commit is contained in:
Stavros Kontopoulos 2023-11-07 09:46:42 +02:00 committed by GitHub
parent 304459f85c
commit 20aa33b915
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 29 additions and 5 deletions

View File

@ -1,12 +1,36 @@
# Volume Support for Knative services
By default Serving supports the mounting the [volume types](https://kubernetes.io/docs/concepts/storage/volumes): `emptyDir`, `secret`, `configMap` and `projected`. [PersistentVolumes](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) are supported but require a [feature flag](../configuration/feature-flags.md) to be enabled.
You can provide data storage for Knative Services by configuring different volumes types.
Serving supports mounting the [volume types](https://kubernetes.io/docs/concepts/storage/volumes): `emptyDir`, `secret`, `configMap` and `projected`.
[PersistentVolumes](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) are supported but require a [feature flag](../configuration/feature-flags.md) to be enabled.
!!! warning
Mounting large volumes may add considerable overhead to the application's start up time.
Here is an example of using a persistent volume claim with a Knative Service:
Bellow there is an example of using a persistent volume claim with a Knative Service.
## Prerequisites
Before you can configure PVCs for a Service, this feature must be enabled in the `config-features` ConfigMap as follows:
```
kubectl patch --namespace knative-serving configmap/config-features \
--type merge \
--patch '{"data":{"kubernetes.podspec-persistent-volume-claim": "enabled", "kubernetes.podspec-persistent-volume-write": "enabled"}}'
```
* The `kubernetes.podspec-persistent-volume-claim` extension controls whether persistent volumes (PVs) can be used with Knative Serving.
* The `kubernetes.podspec-persistent-volume-write` extension controls whether PVs are available to Knative Serving with the write access.
!!! note
If you have installed Serving via the Knative operator then you need to set the above feature flags **only** at the corresponding Serving CR.
## Procedure
* Modify the PVC configuration for your Service:
```yaml
apiVersion: serving.knative.dev/v1
@ -16,8 +40,8 @@ spec:
template:
spec:
containers:
...
volumeMounts:
...
volumeMounts:
- mountPath: /data
name: mydata
readOnly: false
@ -37,4 +61,4 @@ spec:
resources:
requests:
storage: 1Gi
```
```