Flink Native Kubernetes (一)

2023-11-09

目录

概述

目标是使用Kubernetes作为flink的资源管理器,抛弃较重的YARN集群模式,可以很好的与现有的其他应用进行资源共用。

预下载资源文件
flink编译版本,解压可用
系统相关镜像1
系统相关镜像2
系统相关镜像3

Linux 集群描述

尽可能模拟生产使用了总计4台虚拟机做安装
没有给集器配置Host,因为使用Rancher启动K8s的时候,Node节点解析不到Host,应该是我没有找到对应配置,小伙伴可以自行测试

集器IP 备注
20.20.0.185 Rancher-Master
20.20.0.186 K8s-Master
20.20.0.187 K8s-Node1
20.20.0.188 K8s-Node2

版本

所有操作指令都仅只依赖于如下版本,如果需要更新版本进行迭代,可以查看官进行操作
Rancher-Docker-Kubernetes 版本相互依赖 更换版本 请查看官网

  • docker-ce-18.09.0
  • rancher-2.5.5
  • K8S Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.2", GitCommit:"52c56ce7a8272c798dbc29846288d7cd9fbae032", GitTreeState:"clean", BuildDate:"2020-04-16T11:56:40Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}
  • K8S Server Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.7", GitCommit:"1dd5338295409edcfff11505e7bb246f0d325d15", GitTreeState:"clean", BuildDate:"2021-01-13T13:15:20Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"linux/amd64"}
  • Flink-1.11
  • Scala-2.11

部署K8S环境

为了方便制作进出环境,这里使用Rancher的方式部署K8S,尽快进行测试

配置Yum

阿里官方镜像站 点击对应 操作系统 安装配置Yum
安装相关yum依赖和工具

yum install -y wget telnet net-tools lrzsz vim zip unzip yum-utils device-mapper-persistent-data lvm2

阿里官方镜像站 搜索Docker-ce 配置Docker Yum源

安装docker

查看Docker版本

yum list docker-ce --nogpgcheck --showduplicates | sort -r

安装对应版本Docker

yum install docker-ce-18.09.0

启动服务

systemctl start docker

开机启动

systemctl enable docker

配置国内镜像加速

vim /etc/docker/deamon.json

增加

{
 "registry-mirrors":["https://registry.docker-cn.com"]
}

加载配置-重启

systemctl deamon-reload && systemctl restart docker

安装Rancher

Rancher文档
方便安装,使用Docker启动Rancher
可以将相关DockerImage先Load到本地这样可以提高安装速度后续增加我这版本需要的各种镜像资源

Docker启动Rancher

docker run -d --privileged --restart=unless-stopped -p 80:80 -p 443:443 --privileged rancher/rancher:latest

这样就可以在 20.20.0.185上查看到Rancher页面了
在初始化配置Rancher的时候 <SERVER_IP> 这里填写自己的Racher的主机IP 我这里使用的是20.20.0.185

安装K8s 工作集群

为了增加安装效率,建议将镜像优先装到Docker里
更详细的安装教程,请看Racher的文档

这里直接在主界面点击添加集群,添加自定义集群,按照所需要的配置安装即可
我这里选用的网络是Flannel、外部负载Ingress,主机命令增加Etcd、Control Plane,复制SSH指令,粘贴到K8s-Master上执行
坐等Master启动后,点击升级,复制SSH终端指令,不带Etcd和Control Plane,复制SSH指令,粘贴到K8s-Node1、K8s-Node2上执行等待增加完成
至此,集群安装完成

添加KubeCtl命令上下文

添加上下文,Racher文档也有想写解释,如果英文不错,直接看,中文版,翻译的还是挺绕口的

点击新建的集群,点击Kubeconfig文件,放到有用Kubectl的集器上,记得版本要对应上,然后就可以连接集群了
这里需要注意的是,由于集群连接时通过Rancher的Master进行代理的,所以上下文中存在两个集群地址
使用Kubectl config指令进行切换默认连接集群,这个文件对于发布flink任务是有关的,所以这里需要注意

运行FlinkDemo

Flink官方文档
从1.11版本才算比较正常的支持K8s,后续应该会支持的更好
查看关于Session模式,部署与运维->集群与部署->Native Kubernetes
仔细查看要求,里面有关于K8s相关权限的要求,懂K8s权限的可以自己看,我这边直接给出指令
下面代码 ==<>==包含的需要自己定义,都是名称随便写,不过要记住

FlinkSession关于K8s的基础环境

创建命名空间

kubectl create namespace <name-space>

创建ServiceAccount

kubectl create serviceaccount <service-account-name> -n <name-space>

添加权限

kubectl create clusterrolebinding <role-name> --clusterrole=edit --serviceaccount=<name-space>:<service-account-name>

编译Flink/下载启动指令集-启动

这里可以自己选择编译对应版本的Flink源码,会比较慢
也可以通过我这边提供的资源下载直接丢进去就能用,已经编译好了

启动Session

./kubernetes-session.sh -Dkubernetes.namespace=<name-space> -Dkubernetes.jobmanager.service-account=<service-account-name> -Dkubernetes.cluster-id=<cluster-id> -Dtaskmanager.memory.process.size=2048m -Dkubernetes.taskmanager.cpu=1 -Dtaskmanager.numberOfTaskSlots=2 -Dresourcemanager.taskmanager-timeout=3600000

这里可以再补充一个参数

-Dkubernetes.rest-service.exposed.type=[ClusterIp/NodePort/LoadBalancer]

这三个参数可以自行查找一下对应的意思,默认LoadBalancer
咱们测试使用NodePort
增加好这个参数,启动就会直接发给你一个地址,就可以访问监控界面了
这里有可能返回的地址是你得RancherMaster地址,这需要你切换一下KubeConfig的上下文,默认集群

启动Demo

./flink run -d -e kubernetes-session -Dkubernetes.namespace=<name-space> -Dkubernetes.cluster-id=<cluster-id> <jar-path>

启动结束,通过Web界面,就可以看到对应自启动的TaskManager了
还有一些具体的参数,比如停止任务,对应的TaskManager会自动清理等,官方文档里面慢慢翻,东西太多
至此,再K8s上运行FlinkSession已经完成

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flink Native Kubernetes (一) 的相关文章

  • SRC漏洞挖掘经验+技巧篇

    一 漏洞挖掘的前期 信息收集 虽然是前期 但是却是我认为最重要的一部分 很多人挖洞的时候说不知道如何入手 其实挖洞就是信息收集 常规owasp top 10 逻辑漏洞 重要的可能就是思路猥琐一点 这些漏洞的测试方法本身不是特别复杂 一般混迹
  • messages,CentOS 7不收集日志或不存在 /var/log/messages

    var log message var log secure等都不记录了 并且都是空文件 重启机器 reboot 无效 重启日志 systemctl start rsyslog 无效 怀疑空间不足 删除 var log messages 重
  • 步骤详图 教你在linux搭建容器环境

    警告 切勿在没有配置 Docker YUM 源的情况下直接使用 yum 命令安装 Docker 1 准备工作 系统要求 要安装Docker CE 社区版 操作系统的最低要求是CentOS7 7以下版本都不被支持 卸载旧版本 Docker改版
  • 问CHAT很繁琐的问题会不会有答案呢?

    问CHAT 什么已有的基于极值理论的极端温度重现期主要针对极端高温事件 对极端低温事件研究较少 CHAT 回复 为这主要可能是由于以下几个原因 1 气候变化与全球变暖 当前 全球变暖和气候变化的问题备受关注 这导致科研者更加关注极端高温事件
  • Soul App:来一场始于“兴趣”,轻松自在的“零糖”社交吧

    岁末年终 回顾2023年 这一年你都做了什么呢 记不清楚没关系 互联网都帮你记录好了 2023年 B站的年轻人当 所见所闻 刷新自身认知时 往往会发送弹幕 啊 来抒发惊叹 这一年 支付宝 小荷包 的用户中00后占了4成 近一半更开启了 自动
  • 这个很少人知道的零售技巧,却是我最想安利的!

    在当今数字化浪潮的推动下 零售业正在迎来一场革命性的变革 新零售模式的崛起正引领着消费者与商品之间的互动方式发生深刻的变化 在这个变革的前沿 自动售货机作为新零售的一种关键形式 通过智能技术和自动化系统 重新定义了购物体验的边界 客户案例
  • Kubernetes (十三) 存储——持久卷-动静态分配

    一 简介 二 NFS持久化存储步骤 静态分配 1 集群外主机用上次nfsdata共享目录中创建用来测试的pv 1 3 目录 用来对三个静态pv 2 创建pv的应用文件 vim pv yaml apiVersion v1 kind Persi
  • CorelDRAW2024官方中文版重磅发布更新

    35年专注于矢量设计始于1988年并不断推陈出新 致力为全球设计工作者提供更高效的设计工具 CorelDRAW 滋养并见证了一代设计师的成长 在最短的时间内交付作品 CorelDRAW的智能高效会让你一见钟情 CorelDRAW 全称 Co
  • 【产品兼容认证】WhaleStudio 成功兼容TiDB数据库软件

    平凯星辰和白鲸开源宣布成功完成产品兼容认证 北京 2023年12月27日 平凯星辰 北京 科技有限公司 以下简称平凯星辰 旗下的 TiDB 产品与白鲸开源的 WhaleStudio 已成功完成产品兼容性认证 这一重要合作旨在为全球客户提供更
  • 网工内推 | 上市公司同程、科达,五险一金,年终奖,最高12k*15薪

    01 同程旅行 招聘岗位 网络工程师 职责描述 1 负责职场 门店网络规划 建设 维护 2 负责网络安全及访问控制 上网行为管理和VPN设备的日常运维 3 负责内部相关网络自动化和系统化建设 4 优化与提升网络运行质量 制定应急预案 人员培
  • Python 中的最佳 ETL 包

    我有两个用例 从 Oracle PostgreSQL Redshift S3 CSV 提取 转换并加载到我自己的 Redshift 集群 安排作业每天 每周运行 INSERT TABLE 或 INSERT NONE 选项更好 我目前正在使用
  • SSIS 可以支持加载每行具有不同列长度的文件吗?

    目前 我每天收到大约 75 万行的文件 每行开头都有一个 3 个字符的标识符 对于每个标识符 列数可以更改 但特定于标识符 例如 SRH 将始终有 6 列 AAA 将始终有 10 列 依此类推 我希望能够通过 SSIS 将此文件自动生成 S
  • 重命名文件源

    我一直在从平面文件源开发 SSIS 包 该文件每天都会出现 文件名具有日期时间指示 如下所示 文件名 20190509042908 txt 我想知道如何才能度过约会部分 我希望包动态读取文件 但它应该在没有最后 6 位数字的情况下通过 我只
  • ErrorColumn 值不作为 Lineage ID 存在

    在插入目标表期间 发生的任何错误都会被重定向到错误表 我们可以在其中看到ErrorCode and ErrorColumn 问题是我们得到了一个值ErrorColumn它不存在于包中的任何地方 也就是说 没有一个列具有LineageID等于
  • 根据单元格位置将选择性字段从 Excel 批量插入到 SQL

    我有一个 SSIS 包 我必须从 Excel 工作表中选择一些值并将它们插入到 SQL Server 数据库表中 我是通过执行 sql 任务来完成的 这些是步骤 从映射表中选择所有记录 单元格位置是动态的 因此将其保留在 SQL 表中 大约
  • 在SSIS中导入已合并单元格的Excel

    我的问题是在读取合并 组合列单元格的 Excel 文件时 例如 将下面的excel数据读取到数据库中 Excel 输入 ID NAME DEPT FNAME LNAME 1 Akil Tiwari IT 2 Vinod Rathore IT
  • sqlite 插入表中 select * from

    我需要在 Android 应用程序中将数据从一个表移动到另一个表 我想使用以下sql insert into MYTABLE2 select id STATUS risposta DATETIME now data ins from MYT
  • 在 SSIS 中使用 OLE DB 从 Sybase 提取数据时出错

    我在 SSIS 2017 中使用 Advantage 11 OLE DB Provider 从 Sybase 提取数据时遇到问题 我可以连接到数据库 查看表列表 并且在选择表作为数据源时 我可以看到列 但是 当我单击 预览 或运行数据流任务
  • 删除或更改 ETL 中的记录

    我有一个表 我在上面构建了 ETL 服务 货物记录 到达 离开 进入表格 我已经这样做了 我的桌子将被删除 当项目标识符第二次到达数据库时 两条记录都被删除 label cost time x2 29 14 5 2020 01 00 00
  • 导入到 SQL Server 时忽略 Excel 文件中的列

    我有多个具有相同格式的 Excel 文件 我需要将它们导入 SQL Server 我当前遇到的问题是 有两个文本列我需要完全忽略 因为它们是自由文本 并且某些行的字符长度超出了服务器允许我导入的长度 这会导致截断错误 因为我的分析不需要这些

随机推荐

  • jq 中如何调用vue的方法

    jq 中如何调用 vue的方法
  • vs2019下内存泄漏检测工具VLD(Visual Leak Detector)的使用

    前言 我们在c 程序开发中经常在使用指针时 会出现内存泄漏的情况 但是很多时候很难定位到是哪个指针出问题了 这时候就需要内存泄漏检查工具 其中比较好用的就是 VLD Visual Leak Detector 下载 VLD下载地址 安装完成后
  • 【华为OD机试c++/java/python】称砝码【 2023 Q1 A卷

    题目描述 现有n种砝码 重量互不相等 分别为 m1 m2 m3 mn 每种砝码对应的数量为 x1 x2 x3 xn 现在要用这些砝码去称物体的重量 放在同一侧 问能称出多少种不同的重量 注 称重重量包括 0 数据范围 每组输入数据满足 1
  • [机缘参悟-65]:《兵者,诡道也》-7-三十六计解读-败战计

    目录 前言 第1章 三十六计 概述 第六套 败战计 第三十一计 美人计 第三十二计 空城计 第三十三计 反间计 第三十四计 苦肉计 第三十五计 连环计 第三十六计 走为上计 前言 兵者 诡道也 兵者 道 的部分 是 道 的另一面 如果 天道
  • Box2D射线和AABB碰撞检测

    box2d使用了一种叫做slab的碰撞检测算法 所谓slab是指两个平行平面之间的空间 由此我们可以把3D空间中的AABB盒子看做是由AABB的3组平行面形成的3个方向的slab的交集 根据这个定义 我们可以得到以下两个结论 1 如果一个点
  • mysql启动报错:Starting MySQL... ERROR! The server quit without updating PID file

    mysql启动时报错 Starting MySQL ERROR The server quit without updating PID file opt mysql data mysql pid 的解决方法 1 可能是 opt mysql
  • [MySQL]一文带你学明白数据库控制语言——DCL

    前言 嗨咯 小伙伴大家好呀 好几天没见了 周末过得怎么样啊 之前学过的SQL语句不会都忘了吧 如果忘了的话大家可以看一下前几期的文章 本期要学习的是SQL语句中的数据库控制语句 DCL 学习完毕之后MySQL中的SQL语句也就结束了 数据库
  • [388]码云使用说明

    码云如何上传项目 码云上传项目 需要3个步骤 在码云网站建立一个空项目 把这个空项目拉到本地 把自己的项目放到这个空项目里面并提交 1 在码云的页面 点击右上角的加号 2 选择新建项目 3 在跳转的页面简要填写项目信息 除了名称和路径 其它
  • 使用HttpClient下载网页

    Httpclient是一个非常好用的第三方库 用于网络编程 可以用来做个爬虫程序什么之类的 安卓中内置的网络编程库就是httpclient 下面就可大家介绍介绍怎么使用httpclient下载新浪首页的源代码 其过程就是首先构建一个http
  • python怎么调用文件_Python如何调用m文件

    Python如何调用m文件 一 安装Python 并正确配置环境变量 matlab2016a只支持python2 7 python3 3 python3 4 python3 4以上版本不支持 推荐学习 Python教程 二 安装Matlab
  • CSS中如何实现一个自适应正方形(宽高相等)的元素?

    聚沙成塔 每天进步一点点 专栏简介 利用 padding 百分比 2 利用 before 伪元素 写在最后 专栏简介 前端入门之旅 探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅
  • cocos2dx中的内存加载PLIST

    今天 加载图片时有问题 myButtonPList loadTextures jineng 02103 png jineng 02103 light png jineng 03101 png UI TEX TYPE PLIST myButt
  • 时间趋势可视化-柱形图

    第1关 大胃王 比赛数据柱形图绘制 绘制柱形图的基本步骤 本关任务 根据实训提供的 大胃王 比赛数据绘制柱形图 熟悉柱形图绘制的基本步骤 coding utf 8 import pandas as pd from matplotlib im
  • 利用CIBERSORT免疫细胞类群分析详细教程

    利用CIBERSORT免疫细胞类群分析详细教程 现在最火的组学技术是什么 无疑便是单细胞测序了 通过单细胞测序 科研人员可以获得比原来更为精细的细胞图谱 但是单细胞测序诸多限制条件 也是不能让大家很好地利用这项技术解决自己的科学问题 除了较
  • 【Qt】通过QtCreator源码学习Qt(十二):Q_D和Q_Q指针(简称“d指针”)详解

    1 Q D和Q Q指针 简称 d指针 简介 参考博客 https www devbean net 2016 11 qt creator source study 07 https blog csdn net rabinsong articl
  • SpringBoot项目中统计所有Controller中的方法

    对接口方法进行抽象 Data public class ControllerMethodItem public String controllerName public String methodName public String req
  • vscode中preLaunchTask“g++”已终止,退出代码为1的解决方案

    问题背景 楼主原来做的项目 电脑中装了MinGW64 还有MinGW的32位版在用vscode时发现出现了 preLaunchTask g 已终止 退出代码为1的问题 找了好久 解决了问题 launch json 注释的位置 这里修改GDB
  • Vue中实现放大镜效果

    先来看一下我们需要实现的效果是怎样的 这里我们没有使用原生的 js 方法去实现 而是使用的 Vue3 官方推荐的一个工具库 vueuse cor 中的 useMouseInElement 方法来实现放大镜的效果 首先来看一下 useMous
  • 如何安装和配置树莓派

    如何安装和配置树莓派 如果你有一块树莓派的板子 还有一个没安装系统的SD卡 怎么能把系统装上 配置好跑起来 这篇文章主要就讲这个事 这是一块Raspberry Pi Zero W板 以及一个空SD卡 当然 我们需要一个SD卡读卡器 还需要一
  • Flink Native Kubernetes (一)

    目录 文章目录 目录 概述 Linux 集群描述 版本 部署K8S环境 配置Yum 安装docker 安装Rancher 安装K8s 工作集群 添加KubeCtl命令上下文 运行FlinkDemo FlinkSession关于K8s的基础环