You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flink.apache.org by "Peng Yuan (Jira)" <ji...@apache.org> on 2022/08/26 04:20:00 UTC
[jira] [Created] (FLINK-29110) Support to mount a dynamically-created pvc for JM and TM in standalone mode with StatefulSet.
Peng Yuan created FLINK-29110:
---------------------------------
Summary: 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: New Feature
Components: Deployment / Kubernetes
Reporter: Peng Yuan
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.
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-volume
mountPath: /opt/flink/log
taskManager:
resource:
replicas: 1 // (only needed for standalone clusters)*
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-volume
mountPath: /opt/flink/log
mode: standalone {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)