You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Gyula Fora (Jira)" <ji...@apache.org> on 2022/11/28 09:37:00 UTC

[jira] [Commented] (FLINK-29110) Support to mount a dynamically-created pvc for JM and TM in standalone mode with StatefulSet.

    [ https://issues.apache.org/jira/browse/FLINK-29110?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17639908#comment-17639908 ] 

Gyula Fora commented on FLINK-29110:
------------------------------------

[~kevin_123]  are you still working on this?

> Support to mount a dynamically-created pvc for JM and TM in standalone mode with StatefulSet.
> ---------------------------------------------------------------------------------------------
>
>                 Key: FLINK-29110
>                 URL: https://issues.apache.org/jira/browse/FLINK-29110
>             Project: Flink
>          Issue Type: Improvement
>          Components: Kubernetes Operator
>            Reporter: Peng Yuan
>            Assignee: Peng Yuan
>            Priority: Major
>              Labels: pull-request-available
>
> Use StatefulSet instead of Deployment to deploy JM and TM to support mount a dynamically-created PersistentVolumeClaim.
> add volumeClaimTemplates to JobManagerSpec and TaskManagerSpec:
> JobManagerSpec:
> {code:java}
> public class JobManagerSpec {
>     /** Resource specification for the JobManager pods. */
>     private Resource resource;
>     /** Number of JobManager replicas. Must be 1 for non-HA deployments. */
>     private int replicas = 1;
>     /** Volume Claim Templates for JobManager stateful set. Just for standalone mode. */
>     private List<PersistentVolumeClaim> volumeClaimTemplates = new ArrayList<>();
>     /** JobManager pod template. It will be merged with FlinkDeploymentSpec.podTemplate. */
>     private Pod podTemplate;
> }
>  {code}
> TaskManagerSpec:
> {code:java}
> public class TaskManagerSpec {
>     /** Resource specification for the TaskManager pods. */
>     private Resource resource;
>     /** Number of TaskManager replicas. If defined, takes precedence over parallelism */
>     @SpecReplicas private Integer replicas;
>     /** Volume Claim Templates for TaskManager stateful set. Just for standalone mode. */
>     private List<PersistentVolumeClaim> volumeClaimTemplates = new ArrayList<>();
>     /** TaskManager pod template. It will be merged with FlinkDeploymentSpec.podTemplate. */
>     private Pod podTemplate;
> } {code}
>  
> volumeClaimTemplates just available in standalone mode[1].
> CR Example:
> {code:java}
> kind: FlinkDeployment
> metadata:
>   namespace: default
>   name: basic-example
> spec:
>   image: flink:1.14.3
>   flinkVersion: v1_14
>   flinkConfiguration:
>     taskmanager.numberOfTaskSlots: "2"
>   serviceAccount: flink
>   jobManager:
>     replicas: 1
>     resource:
>       memory: "2048m"
>       cpu: 1
>     volumeClaimTemplates:
>       - metadata:
>           name: log
>         spec:
>           accessModes: [ "ReadWriteOnce" ]
>           storageClassName: "alicloud-local-lvm"
>           resources:
>             requests:
>               storage: 10Gi
>     podTemplate:
>       apiVersion: v1
>       kind: Pod
>       metadata:
>         name: job-manager-pod-template
>       spec:
>         containers:
>           - name: flink-main-container
>             volumeMounts:
>               - name: log
>                 mountPath: /opt/flink/log
>   taskManager:
>     replicas: 1 // (only needed for standalone clusters)*     
>     resource:
>       memory: "2048m"
>       cpu: 1
>     volumeClaimTemplates: 
>       - metadata:
>           name: log
>         spec:
>           accessModes: [ "ReadWriteOnce" ]
>           storageClassName: "alicloud-local-lvm"
>           resources:
>             requests:
>               storage: 10Gi
>     podTemplate:
>       apiVersion: v1
>       kind: Pod
>       metadata:
>         name: task-manager-pod-template
>       spec:
>         containers:
>           - name: flink-main-container
>             volumeMounts:
>               - name: log
>                 mountPath: /opt/flink/log
>   mode: standalone {code}
> [1]. [FLIP-225: Implement standalone mode support in the kubernetes operator - Apache Flink - Apache Software Foundation|https://cwiki.apache.org/confluence/display/FLINK/FLIP-225%3A+Implement+standalone+mode+support+in+the+kubernetes+operator]
>  



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