Flink Operator 使用指南 之 Flink Operator安装

介绍

Flink Kubernetes Operator 充当控制平面来管理 Apache Flink 应用程序的完整部署生命周期。尽管 Flink 的Native Kubernetes 集成已经允许用户在运行的 Kubernetes(k8s) 集群上直接部署 Flink 应用程序,但自定义资源和Operator Pattern 也已成为 Kubernetes 原生部署体验的核心。
Flink Kubernetes Operator 旨在承担管理 Flink 部署的人类操作员的职责。人类操作员对 Flink 部署应该如何运行、如何启动集群、如何部署作业、如何升级作业以及出现问题时如何反应有着深入的了解。Flink Kubernetes Operator 的主要目标是这些活动的自动化,这无法仅通过 Flink 原生集成来实现。

架构

Flink Kubernetes Operator充当控制平面,管理 Apache Flink 应用程序的完整部署生命周期。 Operator 可以使用 Helm 安装在 Kubernetes 集群上。在大多数生产环境中,它通常部署在指定的命名空间中,并控制一个或多个托管命名空间中的 Flink 部署。
Flink Operator
Operator 遵循 Kubernetes 原则,特别是控制循环:
Control Loop
用户可以使用 Kubernetes 命令行工具 kubectl 与操作员进行交互。 Operator 持续跟踪与 FlinkDeployment 和 FlinkSessionJob 自定义资源相关的集群事件。当 Operator 收到新的资源更新时,它将采取行动将 Kubernetes 集群调整到所需状态,作为其协调循环的一部分。初始循环由以下高级步骤组成:

1.FlinkDeployment/FlinkSessionJob 自定义资源(CR)
2. Operator 观察 Flink 资源的当前状态(如果之前部署过)
3. Operator验证提交的资源更改
4. Operator协调任何所需的更改并执行升级

CR 可以随时(重新)应用于集群。Operator不断调整以模仿期望的状态,直到当前状态成为期望的状态。所有生命周期管理操作都是在 Operator 中使用这个非常简单的原理来实现的。
Operator 使用 Java Operator SDK构建,并使用 Native Kubernetes Integration 启动 Flink 部署并在后台提交作业。 Java Operator SDK 是一个更高级别的框架和相关工具,用于支持用 Java 编写 Kubernetes Operator。 Java Operator SDK 和 Flink 的原生 kubernetes 集成本身都使用 Fabric8 Kubernetes 客户端与 Kubernetes API 服务器交互。

Flink 资源生命周期

Operator 管理 Flink 资源的生命周期。下图说明了不同的可能状态和转换:
Flink Resource Lifecycle
我们可以区分以下几种状态:

CREATED :资源已在 Kubernetes 中创建,但尚未由操作员处理
SUSPENDED :(作业)资源已暂停 升级:资源在升级到新规范之前被暂停
DEPLOYED :资源已部署/提交到 Kubernetes,但尚未被认为稳定,将来可能会回滚
STABLE :资源部署被认为是稳定的,不会回滚
ROLLING_BACK :资源正在回滚到最后一个稳定规范
ROLLED_BACK :资源使用最新的稳定规范进行部署
FAILED :作业最终失败

更多参考:Flink Operator Controller Flow 阐述Flink Operator 控制流程,初期不建议读者看这部分内容,如果需要定制开发Flink Operator的行为,可以参考改文章

部署/安装Flink Operator

Flink Operator提供了本地安装和远程安装的方式,其中远程需要保障用户的k8s集群连接外部网络,自动下载相关K8S镜像,这里我们主要记录一下本地安装的步骤。
1)为了构建操作员,您需要下载flink-operator源码,并解压到CentOS机器的指定目录下:
Flink Opertor下载地址

tree -L 1  flink-kubernetes-operator/
  1. 本地安装JDK 和 maven3.x 环境,需要注意Flink Kubernetes Operator 需要用户安装 Java 11.
[root@CentOSA ~]# rpm -ivh jdk-11.0.20_linux-x64_bin.rpm
warning: jdk-11.0.20_linux-x64_bin.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:jdk-11-2000:11.0.20-9            ################################# [100%]
[root@CentOSA ~]# java -version
java version "11.0.20" 2023-07-18 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.20+9-LTS-256)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.20+9-LTS-256, mixed mode)
[root@CentOSA ~]# mvn -version
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /export/server/apache-maven-3.6.3
Java version: 11.0.20, vendor: Oracle Corporation, runtime: /usr/lib/jvm/jdk-11-oracle-x64
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.95.1.el7.x86_64", arch: "amd64", family: "unix"

3.进入Flink-Operator目录编译Flink Operator源码

[root@CentOSA App]# cd flink-kubernetes-operator
[root@CentOSA flink-kubernetes-operator]# mvn clean install -DskipTests -T 1C
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] Flink Kubernetes:                                                  [pom]
[INFO] Flink Kubernetes Standalone                                        [jar]
[INFO] Flink Kubernetes Operator Api                                      [jar]
[INFO] Fli
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flink Operator是指在Apache Flink中执行数据流转换操作的组件。Flink Operator是指在Apache Flink中执行数据流转换操作的组件。根据引用,Datastream Map是一种常见的Operator,它可以对数据流进行映射操作。根据引用的目录,Operator State是Flink中的一个概念,它是与并行的算子实例绑定的状态数据。每个算子实例中都会保存一部分数据流的状态信息。根据引用,Operator State与数据元素中的key无关,它的分配和重新分配是根据算子实例的并行度来进行的。因此,Operator State可以支持当算子实例的并行度发生变化时自动重新分配状态数据。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Flink的操作算子Operator](https://blog.csdn.net/weixin_45316851/article/details/106135215)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Flink之状态编程OperatorState的使用](https://blog.csdn.net/weixin_45366499/article/details/115392620)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值