我可以在Flink Kubernetes操作符中运行具有多个嵌套作业的应用程序吗

9rnv2umw  于 2023-08-03  发布在  Kubernetes
关注(0)|答案(1)|浏览(92)

我有一个jar,它使用main函数来启动3个不同的作业(拓扑),我想在应用模式下使用flink kubernetes operator(版本1.4)将它部署在kubernetes集群中。我希望所有3个作业都能启动,因为我能够使用原生kubernetes部署模式(链接)。
相反,只从我的应用程序调度第一个作业,其他作业将被忽略。用于FlinkDeployment资源的简化清单如下所示

apiVersion: flink.apache.org/v1beta1
kind: FlinkDeployment
metadata:
  name: my-flink-app
spec:
  image: my-custom-flink-image-with-app
  flinkVersion: v1_16
  flinkConfiguration:
    taskmanager.numberOfTaskSlots: "4"
  serviceAccount: flink
  jobManager:
    resource:
      memory: "1024m"
      cpu: 1
  taskManager:
    resource:
      memory: "1024m"
      cpu: 1
    podTemplate:
      apiVersion: v1
      kind: Pod
      metadata:
        name: task-manager-pod-template
      spec:
        initContainers:
          - name: busybox
            image: busybox:1.35.0
            command: [ 'sh','-c','echo hello from task manager' ]  
  podTemplate:
    spec:
      containers:
        - name: flink-main-container    
          env:
          - name: FLINK_PARALLELISM  
            value: "2" 
  job:
    jarURI: local:////opt/flink/usrlib/my-app.jar
    parallelism: 2

字符串
这种行为是预期的吗?我错过了什么吗,不应该可以使用flink-kubernetes-operator启动一个具有多个作业的Flink应用程序吗?

enyaitl3

enyaitl31#

Flink Kubernetes Operator希望每个FlinkDeployment都是一个单独的Flink应用程序,可以独立操作(升级,保存等)。如果您想使用Kubernetes Operator,请将您的应用程序重构为3 FlinkDeployments

相关问题