flink-session-operator

command module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 31, 2022 License: Apache-2.0 Imports: 11 Imported by: 0

README

flink session 集群部署

Go CodeQL

基于 kubebuilder 构建的、方便管理与创建 flink session 集群的 operator

主要能力:

  • 自动化 flink session 集群部署流程
  • 自动化修改 flink session 集群资源配置
  • 自动化清理 flink session 集群

目录

部署方法

  1. 部署 cert-manager
  2. 执行命令 kubectl apply -f https://github.com/123shang60/flink-session-operator/releases/download/v0.2.0/install.yaml

实现原理

部署原理参考 flink 官方文档,配置来源为官方文档。

修改资源配置生效的原理为,将原有集群卸载,并根据最新的配置动态生成启动 job,以达到自动修改集群资源配置的功能

使用方法

新增部署集群
  1. 首先需要单独准备运行 flink 所需的外部组件,例如 s3\zookeeper 等,确保 k8s 与相关组件的连通性;
  2. 配置部署的 namespaces 以及 service account 等基础配置,可以参考 示例
  3. 配置 flinkSession 对象,可以参考 示例
  4. 使用 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 读写目录等高级功能。

注意事项

  1. 建议使用 minios3 后端作为状态后端及 ha 配置存储,暂不支持 hadoop 模式;
  2. 作为状态后端的 bucket 请务必保证不被其他程序使用。开启清理 ha 信息功能会,重启 flink 集群时对应 bucket 数据会被完整删除

FAQ

参见 FAQ

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
api
v1
Package v1 contains API Schema definitions for the flink v1 API group +kubebuilder:object:generate=true +groupName=flink.shang12360.cn
Package v1 contains API Schema definitions for the flink v1 API group +kubebuilder:object:generate=true +groupName=flink.shang12360.cn

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL