【梳理】k8s使用Operator搭建Flink集群

文章目录

  • 架构图
  • 安装cert-manager依赖
  • helm 安装operator
  • 运行集群实例
    • k8s上的两种模式:Native和Standalone
    • 两种CR
    • Demo1:Application 单任务
    • Demo2:Session 多任务
    • 创建ingress
  • 总结

架构图

请添加图片描述

参考:部署验证demo

安装cert-manager依赖

Jetstack/cert-manager 是 Kubernetes 生态系统中的一款开源项目,它提供了一种自动化的方式来管理 TLS 证书的生命周期

kubectl create -f https://github.com/jetstack/cert-manager/releases/download/v1.8.2/cert-manager.yaml

helm 安装operator

# helm 安装 , 包含 deploy*1 、cm*1、crd*2 以及 rbac sa webhook
kubectl create -f https://github.com/jetstack/cert-manager/releases/download/v1.8.2/cert-manager.yaml
helm repo add flink-operator-repo https://downloads.apache.org/flink/flink-kubernetes-operator-1.7.0/
helm install flink-kubernetes-operator flink-operator-repo/flink-kubernetes-operator

运行集群实例

k8s上的两种模式:Native和Standalone

Flink Kubernetes Operator 支持:原生部署native(默认)和独立部署standalone

可以使用部署规范中的 mode 字段设置部署模式。

apiVersion: flink.apache.org/v1beta1
kind: FlinkDeployment
...
spec:...mode: standalone

两种CR

FlinkDeployment CR 定义了 Flink 应用程序和会话集群部署。

FlinkSessionJob CR 定义了 Session 集群上的会话任务(Job)

Flink Kubernetes Operator 支持两种主要类型的部署:Application 和 Session

Session使用与Application 集群类似的规范,唯一的区别是 job 未定义。

Demo1:Application 单任务

只有一个Job,没有提交jar包的功能。

# 此crd创建后,operator会创建:
# 1个deploy(即jobmanager,镜像为flink:1.17)
# 1个pod(即taskManager,镜像也是flink:1.17,任务jar包在镜像中)
apiVersion: flink.apache.org/v1beta1
kind: FlinkDeployment
metadata:name: basic-example
spec:image: flink:1.17flinkVersion: v1_17flinkConfiguration:taskmanager.numberOfTaskSlots: "2"serviceAccount: flinkjobManager:resource:memory: "2048m"cpu: 1taskManager:resource:memory: "2048m"cpu: 1job:jarURI: local:///opt/flink/examples/streaming/StateMachineExample.jarparallelism: 2upgradeMode: stateless

Demo2:Session 多任务

多个job,每个sessionjob代表一个job,有提交jar包的功能。

apiVersion: flink.apache.org/v1beta1
kind: FlinkDeployment
metadata:name: basic-session-deployment-example
spec:image: flink:1.17flinkVersion: v1_17jobManager:resource:memory: "2048m"cpu: 1taskManager:resource:memory: "2048m"cpu: 1serviceAccount: flink
---
apiVersion: flink.apache.org/v1beta1
kind: FlinkSessionJob
metadata:name: basic-session-job-example
spec:deploymentName: basic-session-deployment-examplejob:jarURI: https://repo1.maven.org/maven2/org/apache/flink/flink-examples-streaming_2.12/1.16.1/flink-examples-streaming_2.12-1.16.1-TopSpeedWindowing.jarparallelism: 4upgradeMode: stateless---
apiVersion: flink.apache.org/v1beta1
kind: FlinkSessionJob
metadata:name: basic-session-job-example2
spec:deploymentName: basic-session-deployment-examplejob:jarURI: https://repo1.maven.org/maven2/org/apache/flink/flink-examples-streaming_2.12/1.16.1/flink-examples-streaming_2.12-1.16.1.jarparallelism: 2upgradeMode: statelessentryClass: org.apache.flink.streaming.examples.statemachine.StateMachineExample

创建ingress

svc端口默认为8081,创建一个ingress指向svc-rest即可进行访问。

总结

  1. 拉取国外镜像比较困难,可以使用https://dockerproxy.com/
  2. 搭建多租户PaaS平台,可以使用Session方式,新任务可以通过CR进行管理,也可以由页面添加jar包。
  3. 本文内容来源于Flink官网,进行翻译、简化、整理,供大家参考~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/731446.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSS中 ,有哪些方式可以隐藏页面元素

文章目录 CSS中 ,有哪些方式可以隐藏页面元素实现方式display:nonevisibility:hiddenopacity:0设置height 、width属性为0position:absoluteclip-path小结 CSS中 ,有哪些方式可以隐藏页面元素 实现方式 通过 css 实现隐藏元素方法有如下 : …

uniapp列表进入动画

app列表入场动画 - DCloud 插件市场 列表入场动画https://ext.dcloud.net.cn/plugin?id16957

中医把脉笔记

目录 寸关尺对应的五脏六腑自己给自己把脉把脉五布法定寸关尺分浮中沉分快慢辨阴阳看虚实 参考文章 寸关尺对应的五脏六腑 自己给自己把脉 up主道道总是睡不着的把脉教学视频 用中指按住小骨头下面一点,这是关脉,左手的关脉对应肝脏。 把脉五布法 定…

网络基础aaa

三次握手 四次挥手 网络模型 TCP or UDP 的特点 如何理解 TCP 的5层协议 TCP的5层协议是指计算机网络体系结构中,与TCP(传输控制协议)相关的五个层次。这五个层次从高到低依次是:应用层、传输层、网络层、数据链路层和物理层。每…

java注释的详尽解析

一、什么是注解 (1).注解的作用 ①:注解一般用于对程序的说明,就像注释一样,但是区别是注释是给人看的,但是注解是给程序看的。 ②:让编译器进行编译检查的作用,比如下边这个Override注解是重写的意思&am…

内存安全的编程语言

美国政府新颁布《回归基础构件:通往安全软件之路》 《回归基础构件:通往安全软件之路》中,白宫国家网络主任办公室(ONCD)呼吁开发者使用「内存安全的编程语言」 内存安全的编程语言 根据NSA的建议,内存…

sqlyog社区版下载,数据库客户端,mysql

Downloads webyog/sqlyog-community Wiki GitHubhttps://github.com/webyog/sqlyog-community/wiki/Downloadssqlyog社区版下载

liteIDE 解决go root报错 go: cannot find GOROOT directory: c:\go

liteIDE环境配置 我使用的liteIDE为 x36 5.9.5版本 。在查看–>选项 中可以看到 LiteEnv,双击LiteEnv ,在右侧选择对应系统的env文件,我的是win64系统,所以文件名为win64.env 再双击 win64.env ,关闭当前窗口&…

C++ Qt开发:QHostInfo主机地址查询组件

Qt 是一个跨平台C图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QHostInfo组件实现对主机地址查询功能…

ROS——VirtualBox下载

下载&安装Virtualbox Oracle VM VirtualBox 根据电脑系统版本下载。 注意:前提是电脑cpu要开启虚拟化 根据自己的需求下载 双击开始安装 浏览可以更改下载位置,默认在C盘 然后一直点,是或下一步就好了 下载拓展包 后续需要连接使…

NASA数据集——GOES-16卫星的高级图像和地球观测数据

简介 GHRSST NOAA/STAR GOES-16 ABI L2P America Region SST v2.70 dataset in GDS2 ABI_G16-STAR-L2P-v2.70是美国国家航空航天局(NASA)的一种卫星数据处理产品。这个产品是由GOES-16(也称为GOES-East)卫星的先进基线/全球地球…

201909青少年软件编程(Scratch)等级考试试卷(三级)

青少年软件编程(Scratch)等级考试试卷(三级)2019年9月 第1题:【 单选题】 执行下面的脚本后,变量“分数”的值是多少?() A:5 B:6 C:10 D:25 【正确答案】: C 【试题…

day18_支付宝支付项目部署(保存支付信息,支付接口,支付宝异步回调)

文章目录 1 支付1.1 需求说明1.2 支付宝支付1.2.1 产品介绍产品特色使用示例申请条件费率 1.2.2 接入准备1.2.3 手机网站支付快速接入1.2.4 官方demo研究 1.3 环境搭建(service-pay)1.4 后端接口1.4.1 保存支付信息实现流程说明查询订单接口开发openFeign接口定义代码实现添加依…

Kafka MQ 主题和分区

Kafka MQ 主题和分区 Kafka 的消息通过 主题 进行分类。主题就好比数据库的表,或者文件系统里的文件夹。主题可以被分为若干个 分区 ,一个分区就是一个提交日志。消息以追加的方式写入分区,然 后以先入先出的顺序读取。要注意,由…

新一代 Git 工具,AI 赋能!深度集成、简化操作 | 开源日报 No.194

gitbutlerapp/gitbutler Stars: 7.2k License: NOASSERTION gitbutler 是一个基于 Git 的版本控制客户端。旨在为现代工作流程构建一个全新的 Git 分支管理工具。 虚拟分支:可以同时在多个分支上工作,而无需不断切换分支简化提交管理:通过拖…

勒索软件事件手册:综合指南

近年来,勒索软件攻击的频率和复杂程度都急剧增加。这些攻击的影响可能是毁灭性的,从经济损失到严重的运营中断。 这就是为什么对于希望防范这种网络安全威胁的企业来说, 强大的勒索软件事件响应手册是不可谈判的。 本指南旨在深入了解勒索软…

项目管理技巧分享:如何有效拆分复杂项目?

项目经理需要理清三个问题:1.项目的达成目标是什么,2.项目执行周期有多长,3.项目预计成本是多少?复杂项目在管理执行上难度都较大,通常需要进行分解,并且这个过程离不开项目管理系统的支持。这篇文章告诉你…

《解密云计算:企业之选》

前言 在当今数字化时代,企业面临着巨大的数据处理压力和信息化需求,传统的IT架构已经无法满足日益增长的业务需求。在这样的背景下,越来越多的企业开始转向云计算,以实现灵活、高效和可扩展的IT资源管理和利用。 云计算 云计算是一种基于互联网的计算模式,它通过将数据、…

【字符串】【分类讨论】【KMP】1163. 按字典序排在最后的子串

作者推荐 视频算法专题 本文涉及知识点 字符串 字典序 分类讨论 本题无法使用KMP,因为t1不段变化。 LeetCode1163. 按字典序排在最后的子串 给你一个字符串 s ,找出它的所有子串并按字典序排列,返回排在最后的那个子串。 示例 1&#xf…

Windows 安装 Xinference

Windows 安装 Xinference 0. 引言1. 创建虚拟环境2. 安装 pytorch3. 安装 llama_cpp_python4. 安装 chatglm-cpp5. 安装 Xinference6. 设置 model 路径7. 启动 Xinference8. 查看 Cluster Information 0. 引言 Xorbits Inference(Xinference)是一个性能…