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
对象,即可将集群完全卸载
详细参数说明见 参数说明
功能开关为 {{spec.autoClean}}
配置项。此配置项开启时,每次修改 flink 集群配置或者重新部署时,都会自动清理 flink
残留的 ha
及状态后端信息,实现完全重新部署 session
集群的目的;当功能开关为关闭的情况下,修改或者重新部署将不对 ha
信息做任何修改。
通过 {{spec.volumes}}
及 {{spec.volumeMounts}}
配置,可以任意的为 flink
所有 pod 挂载目录。通过类似功能,可以实现基于 nfs
的多 pod
间目录共享或者独立 rocksdb
读写目录等高级功能。
支持以下两种模式的 Kerberos
一件化配置
kafka
带Kerberos
认证zookeeper
作为HA
时带有Kerberos
认证
详细配置方式参考配置文档
在配置项 applicationConfig
不为空时,支持 Flink
任务自动转换为 Application
模式运行
详细配置参数参考配置文档
- 建议使用
minio
等s3
后端作为状态后端及ha
配置存储,暂不支持hadoop
模式; - 作为状态后端的
bucket
请务必保证不被其他程序使用。开启清理ha
信息功能后,重启flink
集群时对应bucket
的HA
路径下文件会被完整删除
参见 FAQ