【flink配置系列】flink jobmanager-application-ha.yaml功能详解

jobmanager-application-ha.yaml

配置文件主要功能

这个配置文件是用于部署 Flink JobManager 作业的 Kubernetes Job。在高可用(HA)模式下,使用该配置文件可以创建一个 JobManager 实例来运行独立的作业。

  • 定义了一个名为 flink-jobmanager 的 Kubernetes Job。
  • 设置并行度为 1,可以根据需要将其设置为大于 1 以启动备用的 JobManagers。
  • 在 Job 模板中定义了一个 Pod,使用 apache/flink:latest 镜像。
  • 在容器中设置了环境变量和启动参数,以指定作业的类名、可选参数和作业参数,并覆盖配置文件中 jobmanager.rpc.address 的值为 $(POD_IP)
  • 将容器的三个端口映射到相应的容器端口:6123(RPC)、6124(Blob Server)和 8081(Web UI)。
  • 配置了一个活跃探测(liveness probe),通过 TCP Socket 探测容器的 6123 端口,延迟 30 秒后开始探测,每 60 秒进行一次探测。
  • 挂载名为 flink-config-volume 的卷到容器的 /opt/flink/conf 目录,该卷来自 ConfigMap flink-config 中的两个文件。
  • 挂载名为 job-artifacts-volume 的卷到容器的 /opt/flink/usrlib 目录,该卷是宿主机上作业所需的文件路径。
  • 指定了 flink-service-account 作为 Service Account,该 Service Account 具有创建、编辑和删除 ConfigMaps 的权限。

配置文件加上中文注释

apiVersion: batch/v1
kind: Job
metadata:
  name: flink-jobmanager   # Job 的名称
spec:
  parallelism: 1             # 设置并行度为 1,可以根据需要设置大于 1 以启动备用的 JobManagers
  template:
    metadata:
      labels:
        app: flink         # 在 Pod 模板中设置标签 app=flink
        component: jobmanager  # 在 Pod 模板中设置标签 component=jobmanager
    spec:
      restartPolicy: OnFailure   # 在失败时重启 Pod
      containers:
        - name: jobmanager   # 容器名称为 jobmanager
          image: apache/flink:latest   # 使用 apache/flink:latest 镜像
          env:   # 设置环境变量
          - name: POD_IP   # 设置环境变量 POD_IP,获取 Pod 的 IP 地址
            valueFrom:
              fieldRef:
                apiVersion: v1
                fieldPath: status.podIP
          args: ["standalone-job", "--host", "$(POD_IP)", "--job-classname", "com.job.ClassName", <optional arguments>, <job arguments>]  # 启动参数指定作业的类名、可选参数和作业参数,并覆盖配置文件中 jobmanager.rpc.address 的值为 $(POD_IP)
          ports:
            - containerPort: 6123   # 将容器的 6123 端口映射为 RPC 端口
              name: rpc
            - containerPort: 6124   # 将容器的 6124 端口映射为 Blob Server 端口
              name: blob-server
            - containerPort: 8081   # 将容器的 8081 端口映射为 Web UI 端口
              name: webui
          livenessProbe:   # 配置活跃探测
            tcpSocket:
              port: 6123   # 通过 TCP Socket 探测容器的 6123 端口
            initialDelaySeconds: 30   # 延迟 30 秒后开始进行探测
            periodSeconds: 60   # 每 60 秒进行一次探测
          volumeMounts:
            - name: flink-config-volume   # 挂载名为 flink-config-volume 的卷到容器的 /opt/flink/conf 目录
              mountPath: /opt/flink/conf
            - name: job-artifacts-volume   # 挂载名为 job-artifacts-volume 的卷到容器的 /opt/flink/usrlib 目录
              mountPath: /opt/flink/usrlib
          securityContext:
            runAsUser: 9999   # 将容器的用户 ID 设置为 9999(根据官方 flink 镜像的用户 _flink_),如有需要可进行更改
      serviceAccountName: flink-service-account   # 指定 flink-service-account 作为 Service Account
      volumes:
        - name: flink-config-volume   # 定义名为 flink-config-volume 的卷
          configMap:
            name: flink-config   # 从 ConfigMap flink-config 中获取卷的内容
            items:
              - key: flink-conf.yaml
                path: flink-conf.yaml
              - key: log4j-console.properties
                path: log4j-console.properties
        - name: job-artifacts-volume   # 定义名为 job-artifacts-volume 的卷
          hostPath:
            path: /host/path/to/job/artifacts   # 设置宿主机上作业所需的文件路径

官方链接

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BigDataMLApplication

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值