[ 
https://issues.apache.org/jira/browse/FLINK-39021?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated FLINK-39021:
-----------------------------------
    Labels: pull-request-available  (was: )

> Support native PersistentVolumeClaim (PVC) mounting for Kubernetes deployments
> ------------------------------------------------------------------------------
>
>                 Key: FLINK-39021
>                 URL: https://issues.apache.org/jira/browse/FLINK-39021
>             Project: Flink
>          Issue Type: Improvement
>          Components: Deployment / Kubernetes
>            Reporter: Liu
>            Priority: Major
>              Labels: pull-request-available
>
> h1. Motivation
> Currently, Flink on Kubernetes users who want to mount PersistentVolumeClaims 
> (PVCs) to their JobManager and TaskManager pods have to use Pod Templates. 
> While Pod Templates are flexible, they require users to maintain separate 
> YAML files and understand Kubernetes Pod specification details, which 
> increases operational complexity.
> This proposal introduces native configuration options for mounting PVCs 
> directly through Flink configuration, providing a simpler and more intuitive 
> way for users to attach persistent storage to their Flink clusters.
>  
> h1. Use Cases
>  # Checkpoint/Savepoint Storage: Mount a shared PVC for storing checkpoints 
> and savepoints, enabling high availability and disaster recovery.
>  # Shared Data Access: Mount read-only PVCs containing shared datasets or 
> configuration files that multiple pods need to access.
>  # Log Persistence: Mount PVCs to persist logs beyond pod lifecycle for 
> debugging and auditing.
>  # State Backend Storage: Use mounted PVCs as storage for RocksDB state 
> backend in scenarios where local SSD is required.
> h1. Proposed Changes
> | Configuration Key | Type | Default | Description |
> |-------------------|------|---------|-------------|
> | `kubernetes.persistent-volume-claims` | Map<String, String> | (none) | PVCs 
> and their mount paths in format `pvc-name:/mount/path` |
> | `kubernetes.persistent-volume-claims.read-only` | Boolean | false | Whether 
> to mount PVCs as read-only |
> {code:java}
> # Mount a single PVC for checkpoint storage
> kubernetes.persistent-volume-claims: checkpoint-pvc:/opt/flink/checkpoints
> # Mount multiple PVCs
> kubernetes.persistent-volume-claims: 
> checkpoint-pvc:/opt/flink/checkpoints,data-pvc:/opt/flink/data
> # Mount PVCs as read-only (for shared data)
> kubernetes.persistent-volume-claims: shared-data:/opt/flink/shared
> kubernetes.persistent-volume-claims.read-only: true {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to