# README
flink-session-operator
flink session 集群部署
基于 kubebuilder 构建的、方便管理与创建 flink session 集群的 operator
主要能力:
- 自动化 flink session 集群部署流程
- 自动化修改 flink session 集群资源配置
- 自动化清理 flink session 集群
- 自动配置 kerberos
目录
部署方法
- 部署 cert-manager
- 执行命令
kubectl apply -f https://github.com/123shang60/flink-session-operator/releases/download/v0.2.0/install.yaml
实现原理
部署原理参考 flink 官方文档,配置来源为官方文档。
修改资源配置生效的原理为,将原有集群卸载,并根据最新的配置动态生成启动 job
,以达到自动修改集群资源配置的功能
使用方法
新增部署集群
- 首先需要单独准备运行 flink 所需的外部组件,例如 s3\zookeeper 等,确保 k8s 与相关组件的连通性;
- 配置部署的
namespaces
以及service account
等基础配置,可以参考 示例 - 配置
flinkSession
对象,可以参考 示例 - 使用
kubectl
或其他方式apply
相关配置,即可将集群部署到 k8s 内部
修改集群配置
直接使用 kubectl edit flinkSession
命令修改 flinkSession
对象的相关内容,保存后即可生效
卸载集群
直接使用 kubectl delete flinkSession
命令删除 flinkSession
对象,即可将集群完全卸载
参数说明
详细参数说明见 参数说明
特性功能
配置变更时清理 ha 及状态后端信息
功能开关为 {{spec.autoClean}}
配置项。此配置项开启时,每次修改 flink 集群配置或者重新部署时,都会自动清理 flink
残留的 ha
及状态后端信息,实现完全重新部署 session
集群的目的;当功能开关为关闭的情况下,修改或者重新部署将不对 ha
信息做任何修改。
任意卷挂载
通过 {{spec.volumes}}
及 {{spec.volumeMounts}}
配置,可以任意的为 flink
所有 pod 挂载目录。通过类似功能,可以实现基于 nfs
的多 pod
间目录共享或者独立 rocksdb
读写目录等高级功能。
Kerberos 支持
支持以下两种模式的 Kerberos
一件化配置
kafka
带Kerberos
认证zookeeper
作为HA
时带有Kerberos
认证
详细配置方式参考配置文档
Application 模式支持
在配置项 applicationConfig
不为空时,支持 Flink
任务自动转换为 Application
模式运行
详细配置参数参考配置文档
注意事项
- 建议使用
minio
等s3
后端作为状态后端及ha
配置存储,暂不支持hadoop
模式; - 作为状态后端的
bucket
请务必保证不被其他程序使用。开启清理ha
信息功能后,重启flink
集群时对应bucket
的HA
路径下文件会被完整删除
FAQ
参见 FAQ
# Packages
No description provided by the author
No description provided by the author
No description provided by the author