flink operator v1.10部署flink v1.19.2

news/2025/2/24 13:44:55

1 概述

flink集群能对接kubernetes、yarn等集群管系统,本文介绍flink对接kubernetes。
flink kubernetes operator(网址:https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-release-1.10/docs/concepts/overview/)可帮助你在kubernetes中管理flink集群、提交flink任务等,而你为此只需要认识一些kubernetes CR。

flink kubernetes operator的架构如下:

在这里插入图片描述

2 环境准备

2.1 华为云kubernetes集群

准备一个kubernetes集群,如下图所示:
在这里插入图片描述

flink_operator_helm_13">2.2 flink operator helm包下载地址

https://downloads.apache.org/flink/flink-kubernetes-operator-1.10.0/flink-kubernetes-operator-1.10.0-helm.tgz

2.3 cert-manager yaml文件下载地址

https://github.com/jetstack/cert-manager/releases/download/v1.17.2/cert-manager.yaml

flink_25">2.4 准备flink应用示例

https://github.com/apache/flink/tree/master/flink-examples

将示例的代码编译成jar包,再上传到对象存储OBS,如下图所示:
在这里插入图片描述


这些jar包存在独立的服务器上,flink operator可以通过HTTP协议拉取jar包,最终提交给flink集群。

3 部署

3.1 安装cert-manager

此组件是flink operator webhook的一个依赖,因此先安装它。

cd /tmp
wget https://github.com/jetstack/cert-manager/releases/download/v1.17.1/cert-manager.yaml
kubectl apply -f cert-manager.yaml

在这里插入图片描述

3.2 安装helm二进制工具

cd /tmp
wget https://get.helm.sh/helm-v3.16.2-linux-amd64.tar.gz
tar xf helm-v3.16.2-linux-amd64.tar.gz
cd linux-amd64
/bin/cp -f helm /usr/bin/
helm env

flink_operator_55">3.3 部署flink operator

下载fink operator的helm包,解压文件,最后通过helm命令将它部署在flink namespace中。

cd /tmp
wget https://downloads.apache.org/flink/flink-kubernetes-operator-1.10.0/flink-kubernetes-operator-1.10.0-helm.tgz
tar xf flink-kubernetes-operator-1.10.0-helm.tgz
helm upgrade --install flink-operator -n flink --create-namespace \
--set image.repository=swr.cn-south-1.myhuaweicloud.com/migrator/flink-kubernetes-operator \
--set image.tag=1.10.0 \
./flink-kubernetes-operator/

在这里插入图片描述

flink_session_72">3.4 部署flink session集群

将下面一个FlinkDeployment资源提交到kubernetes集群即可,只需要描述flink集群的镜像,jobmanager和taskmanager的资源配额。

apiVersion: flink.apache.org/v1beta1
kind: FlinkDeployment
metadata:
  name: flink-session-cluster
  namespace: flink
spec:
  image: swr.cn-south-1.myhuaweicloud.com/migrator/flink:1.19
  flinkVersion: v1_19
  flinkConfiguration:
  jobManager:
    resource:
      memory: "2048m"
      cpu: 2
  taskManager:
    resource:
      memory: "2048m"
      cpu: 2
  serviceAccount: flink

在这里插入图片描述

flink_session_96">3.5 负载均衡器暴露flink session集群

在控制台创建ingress资源即可:
在这里插入图片描述

flink_102">4 提交flink应用

将FlinkSessionJob资源提交到kubernetes集群中即可。deploymentName指向刚刚新建的flink集群(deployment名称就是CR的名称)。

apiVersion: flink.apache.org/v1beta1
kind: FlinkSessionJob
metadata:
  name: basic-session-job-example
  namespace: flink
spec:
  deploymentName: flink-session-cluster
  job:
    jarURI: https://你的服务器地址/StateMachineExample.jar
    parallelism: 1

提交后,查看flink operator的日志,可以发现控制器协调成功:

o.a.f.k.o.r.d.AbstractFlinkResourceReconciler [INFO ][flink/basic-session-job-example] Resource fully reconciled, nothing to do...

登录浏览器查看flink集群,可见任务正常运行:
在这里插入图片描述

5 小结

通过提交kubernetes CR,来完成flink集群的创建、flink任务的管理等,这就是flink kubernetes operator的价值。


http://www.niftyadmin.cn/n/5864409.html

相关文章

Linux CentOS 上 Ollama 的安装与部署:从入门到实践

Linux CentOS 上 Ollama 的安装与部署:从入门到实践 随着人工智能技术的快速发展,大语言模型(LLMs)的应用场景越来越广泛。Ollama 作为一个轻量级的 AI 模型管理工具,为开发者提供了便捷的模型部署和管理解决方案。本文将详细介绍如何在 Linux CentOS 系统上安装和部署 O…

补充:文件上传、下载传输给前端之直接传递图片二进制数据:网络中的图片、音频、视频等非字符数据的传输

文章目录 1 Base64编码传递图片、视频二进制数据2 后端直接传递图片二进制数据案例2.1 后端:创建专用DTO(推荐方案)2.2 前端处理建议1 Base64编码传递图片、视频二进制数据 前面我们在学习Java的IO流的时候讲过字节流和字符流。 字符的传输:前后端字符的传输JSON中就是直接…

vscode settings(一):全局| 用户设置常用的设置项

参考资料 Visual Studio Code权威指南 by 韩骏 一. 全局设置与用户设置 1.1 Vscode支持两种不同范围的设置 用户设置(User Settings):这是一个全局范围的设置,会应用到所有的Visual Studio Code实例中。工作区设置(Workspace Settings):设…

【多线程-第三天-NSOperation的练习-tableView异步下载网络图片-下载操作缓存池 Objective-C语言】

一、下载操作缓存池 1.下面我们来看操作缓存池,我们先演示一下问题,看看为什么要加这么一个操作缓存池,什么是操作缓存池,不用管呢,我们先来看啊,首先有什么问题, 看这个问题之前,我这儿写一个touch,点击屏幕的时候调用, 额,不能点击屏幕啊,因为现在屏幕点不着,我…

如何自由切换 Node.js 版本?

作为开发者,我们经常在不同的项目中需要使用不同版本的 Node.js。有时旧项目需要旧版本,而新项目则可能依赖最新的 Node.js 版本。手动安装、卸载、切换版本不仅麻烦,而且容易出错。为了解决这个问题,Node.js 社区提供了多种方便的…

【论文解读】《Training Large Language Models to Reason in a Continuous Latent Space》

论文链接 1. 背景与动机 语言空间与推理的矛盾 目前大多数大语言模型(LLMs)在解决复杂问题时采用链式思维(Chain-of-Thought, CoT)方法,即利用自然语言逐步推导出答案。然而,论文指出: 自然语言…

力扣——搜索二维矩阵

题目链接: 链接 题目描述: 思路: 可以发现,如果把每一行拼起来,就是一个递增的数组,可以在这个递增的数组上使用二分法找到target如果拼起来的某个元素索引是i,那它在二维矩阵里面的索引是【…

【C++】list 链表的使用+模拟实现

目录 文章目录 前言 一、list的简介 二、list的使用方法 三、list的模拟实现 1.基本框架: 2.迭代器实现 3.常用接口实现 四、完整代码 总结 前言 本文主要介绍C【STL】容器中的 list,包括接口说明和模拟实现。其中讲解了迭代器功能上的分类&am…