这里展示flinkDeployment的全部自定义参数,仅供参考。
flinkDeployment
类:org.apache.flink.kubernetes.operator.crd.FlinkDeployment
描述:表示应用(application)和会话 (session)deployments的自定义资源
参数 | 类型 | 描述 |
---|---|---|
spec | org.apache.flink.kubernetes.operator.crd.spec.FlinkDeploymentSpec | flink应用或者会话集群deployment的规范 |
status | org.apache.flink.kubernetes.operator.crd.status.FlinkDeploymentStatus | flink deployment最新的状态 |
spec
flinkDeploymentSpec
类:org.apache.flink.kubernetes.operator.api.spec.FlinkDeploymentSpec
描述:描述Flink应用程序或会话集群部署的规范
主要字段如下:
参数 | 类型 | 描述 |
---|---|---|
job | org.apache.flink.kubernetes.operator.api.spec.JobSpec(自定义jobSpec类型) | job应用/session job的规约,session 集群该字段为空 |
restartNonce | java.lang.Long(int64,长整型) | 用于手动触发session/cluster job的重建。目标值和当前值不一致就会触发重建。 |
flinkConfiguration | java.util.Map<java.lang.String,java.lang.String>(map,字典类型) | flink配置参数,将会覆盖flink deployment或flink session job中的参数 |
image | java.lang.String(string,字符串) | flink用于启动job和taskManager pods的容器镜像 |
imagePullPolicy | java.lang.String(string,字符串) | flink容器镜像的拉取策略 |
serviceAccount | java.lang.String(string,字符串) | flinkDeployment使用的k8s sa |
flinkVersion | org.apache.flink.kubernetes.operator.api.spec.FlinkVersion | flink的镜像版本 |
ingress | org.apache.flink.kubernetes.operator.api.spec.IngressSpec | ingress规约 |
podTemplate | io.fabric8.kubernetes.api.model.Pod | flinkDeployment的pod模板可用于job和task manager pods,也可以被jobManager和taskManager中的pod模板覆盖 |
jobManager | org.apache.flink.kubernetes.operator.api.spec.JobManagerSpec | jobManager的规约 |
taskManager | org.apache.flink.kubernetes.operator.api.spec.TaskManagerSpec | taskManager的规约 |
logConfiguration | java.util.Map<java.lang.String,java.lang.String>(map,字典类型) | 日志配置,会覆盖flinkDeployment的日志配置。格式化日志配置文件名称->配置上下文 |
mode | org.apache.flink.kubernetes.operator.api.spec.KubernetesDeploymentMode | flink集群的部署模式,native或standalone |
flinkSessionJobSpec
类:org.apache.flink.kubernetes.operator.api.spec.FlinkSessionJobSpec
描述:flink session job的规范
主要参数如下:
参数 | 类型 | 描述 |
---|---|---|
job | org.apache.flink.kubernetes.operator.api.spec.JobSpec | job应用/session job的规约,session 集群该字段为空 |
restartNonce | java.lang.Long(int64,长整型) | 用于手动触发session/cluster job的重建。目标值和当前值不一致就会触发重建。 |
flinkConfiguration | java.util.Map<java.lang.String,java.lang.String>(map,字典) | flink配置参数,将会覆盖flink deployment或flink session job中的参数 |
deploymentName | java.lang.String(string,字符串) | 目标会话集群(session cluster)的名称 |
FlinkVersion
类:org.apache.flink.kubernetes.operator.api.spec.FlinkVersion
描述:枚举类型,会枚举支持的flink版本
该字段的值 | 描述 |
---|---|
v1_13 | flink 1.13 |
v1_14 | flink 1.14 |
v1_15 | flink 1.15 |
v1_16 | flink 1.16 |
v1_17 | flink 1.17 |
v1_18 | flink 1.18 |
ingressSpec
类: org.apache.flink.kubernetes.operator.api.spec.IngressSpec
描述: Ingress 规约
参数 | 类型 | 描述 |
---|---|---|
template | java.lang.String(string,字符串) | JobManager服务的Ingress模板 |
className | java.lang.String(string,字符串) | Flink deployment的Ingress 类名 |
annotations | java.util.Map<java.lang.String,java.lang.String>(map,字典) | Ingress的annotations. |
JobManagerSpec
类: org.apache.flink.kubernetes.operator.api.spec.JobManagerSpec
描述: JobManager 规约
参数 | 类型 | 描述 |
---|---|---|
resource | org.apache.flink.kubernetes.operator.api.spec.Resource | JobManager pod的资源定义 |
replicas | int | JobManager 的副本数,非HA模式必须为1 |
podTemplate | io.fabric8.kubernetes.api.model.Pod | JobManager pod模板. 该字段会和FlinkDeploymentSpec中的pod模板一期合并 |
JobSpec
类: org.apache.flink.kubernetes.operator.api.spec.JobSpec
描述: Flink job spec.
参数 | 类型 | 描述 |
---|---|---|
jarURI | java.lang.String(string, 字符串) | Flink docker容器中作业jar的可选URI。For example: local:///opt/flink/examples/streaming/StateMachineExample.jar. 如果该字段未设置,则使用系统中设置的路径。 |
parallelism | int | Flink job的并行度 |
entryClass | java.lang.String(string, 字符串) | Flink job的完全限定主类名 |
args | java.lang.String[]([]string,字符串切片) | Flink job主类的参数 |
state | org.apache.flink.kubernetes.operator.api.spec.JobState | job 预期的状态,字段为running和suspended |
savepointTriggerNonce | java.lang.Long(int64,长整型) | 对正在运行的job触发一次手动savepoint。只需要修改的内容与当前值不一致即可自动触发savepoint |
initialSavepointPath | java.lang.String(string, 字符串) | 指定job首次部署的savepoint路径,该参数只生效一次,不会影响后续升级和重新部署 |
upgradeMode | org.apache.flink.kubernetes.operator.api.spec.UpgradeMode | Flink job的更新模式,可选字段为stateless, savepoint, last-state |
allowNonRestoredState | java.lang.Boolean(bool,布尔类型) | 是否使用非恢复状态,是否允许在task中将checkpoint状态映射进job?jobAllow checkpoint state that cannot be mapped to any job vertex in tasks. |
JobState
类: org.apache.flink.kubernetes.operator.api.spec.JobState
描述: 枚举job预期的状态
状态可选字段 | 描述 |
---|---|
running | Job正常运行,并且在处理数据 |
suspended | 处理被暂停,打算稍后继续 |
kubernetesDeploymentMode
类: org.apache.flink.kubernetes.operator.api.spec.KubernetesDeploymentMode
描述: 枚举Kubernetes集群上flink部署的模式
可选字段 | 描述 |
---|---|
native | 直接使用原生的k8s集群部署flink,也叫原生部署模式,官方默认推荐,目前仅支持比较新的版本(1.13以上) |
standalone | 以独立模式在k8s集群上部署flink,具有比较高的安全性。 |
Resource
类: org.apache.flink.kubernetes.operator.api.spec.Resource
描述: Resource 字段的规约
参数 | 类型 | 描述 |
---|---|---|
cpu | java.lang.Double(float64,浮点型) | 分配给pod的CPU数量 |
memory | java.lang.String(string,字符串) | 分配给pod的内存数量, 例如: 1024m, 1g |
ephemeralStorage | java.lang.String(string,字符串) | 分配给pod的临时存储, 例如: 1024m, 2G |
TaskManagerSpec
类: org.apache.flink.kubernetes.operator.api.spec.TaskManagerSpec
描述: TaskManager的规约
参数 | 类型 | 描述 |
---|---|---|
resource | org.apache.flink.kubernetes.operator.api.spec.Resource | TaskManager资源定义. |
replicas | java.lang.Integer(int,整型) | TaskManager 的副本数,修改该参数优于修改并行度 |
podTemplate | io.fabric8.kubernetes.api.model.Pod | TaskManager pod 模板会和FlinkDeploymentSpec下的podTemplate合并处理 |
UpgradeMode
类: org.apache.flink.kubernetes.operator.api.spec.UpgradeMode
描述: Flink job更新的模式
更新的可选值 | 描述 |
---|---|
savepoint | Job首先通过运行的job获取savepoint,之后关闭该任务从savepoint启动 |
last-state | Job从最新可用的checkpoint或savepoint进行升级,比savepoint优先级低 |
stateless | Job从空状态进行升级 |
status
FlinkDeploymentReconciliationStatus
类: org.apache.flink.kubernetes.operator.api.status.FlinkDeploymentReconciliationStatus
描述: flink编译部署的最新状态
参数 | 类型 | 描述 |
---|---|---|
reconciliationTimestamp | long(int64,长整型) | 最后一次成功编译的时间戳 |
lastReconciledSpec | java.lang.String(string,字符串) | 最近一次部署的模板,用于数据比对 |
lastStableSpec | java.lang.String | 最后一次稳定性部署模板,假如定义了回滚模板,这部分内容就是回滚的对象 |
state | org.apache.flink.kubernetes.operator.api.status.ReconciliationState | 最新的部署状态 |
FlinkDeploymentStatus
类: org.apache.flink.kubernetes.operator.api.status.FlinkDeploymentStatus
描述:Flink 部署的最新状态
参数 | 类型 | 描述 |
---|---|---|
jobStatus | org.apache.flink.kubernetes.operator.api.status.JobStatus | Application/Session job集群最后一次的状态 |
error | java.lang.String | FlinkDeployment/FlinkSessionJob的报错信息 |
lifecycleState | org.apache.flink.kubernetes.operator.api.lifecycle.ResourceLifecycleState | Flink资源的生命周期状态(包括回滚、失败等) |
clusterInfo | java.util.Map<java.lang.String,java.lang.String> | 当前运行集群的信息,比如flink版本信息等 |
jobManagerDeploymentStatus | org.apache.flink.kubernetes.operator.api.status.JobManagerDeploymentStatus | 最后一次观察到的JobManager部署状态 |
reconciliationStatus | org.apache.flink.kubernetes.operator.api.status.FlinkDeploymentReconciliationStatus | 最新的编译状态 |
taskManager | org.apache.flink.kubernetes.operator.api.status.TaskManagerInfo | TaskManagers调度子资源的信息,比如task的副本数等 |
FlinkSessionJobReconciliationStatus
类: org.apache.flink.kubernetes.operator.api.status.FlinkSessionJobReconciliationStatus
描述: flink sessionjob最新编译状态
参数 | 类型 | 描述 |
---|---|---|
reconciliationTimestamp | long | 最新一次编译成功的时间戳 |
lastReconciledSpec | java.lang.String | 最新调谐的spec信息,用来做进一步信息比对 |
lastStableSpec | java.lang.String | 最后一次稳定性部署模板,假如定义了回滚模板,这部分内容就是回滚的对象 |
state | org.apache.flink.kubernetes.operator.api.status.ReconciliationState | 当前spec最近一次调谐的部署状态 |
FlinkSessionJobStatus
类: org.apache.flink.kubernetes.operator.api.status.FlinkSessionJobStatus
描述: Flink Session job 最新观察到的状态
参数 | 类型 | 描述 |
---|---|---|
jobStatus | org.apache.flink.kubernetes.operator.api.status.JobStatus | Application/Session 集群job最新的状态 |
error | java.lang.String | FlinkDeployment/FlinkSessionJob的错误信息 |
lifecycleState | org.apache.flink.kubernetes.operator.api.lifecycle.ResourceLifecycleState | Flink资源的生命周期状态(包括回滚、失败等) |
reconciliationStatus | org.apache.flink.kubernetes.operator.api.status.FlinkSessionJobReconciliationStatus | 当前spec最近一次调谐的部署状态 |
JobManagerDeploymentStatus
类: org.apache.flink.kubernetes.operator.api.status.JobManagerDeploymentStatus
描述: Flink JobManager在k8s集群上的部署状态
状态内容 | 描述 |
---|---|
READY | JobManager正在运行并且随时可以被 REST API 调用 |
DEPLOYED_NOT_READY | JobManager正在运行,但是还不能使用REST API调用 |
DEPLOYING | JobManager进程正在启动 |
MISSING | 找不到JobManager的部署资源,可能是未启动成功也可能是用户删除了当前任务 |
ERROR | 部署错误,需要修改spec来更新发布 |
JobStatus
类: org.apache.flink.kubernetes.operator.api.status.JobStatus
描述: Flink job应用程序部署中的最后一次观察状态
参数 | 类型 | 描述 |
---|---|---|
jobName | java.lang.String | job的名称 |
jobId | java.lang.String | job的id |
state | java.lang.String | 最后一次观察到的job的状态 |
startTime | java.lang.String | job开始的时间 |
updateTime | java.lang.String | job更新的时间 |
savepointInfo | org.apache.flink.kubernetes.operator.api.status.SavepointInfo | job最后一次pending和savepoint的信息 |
ReconciliationState
类: org.apache.flink.kubernetes.operator.api.status.ReconciliationState
描述: 当前调谐的状态
状态的内容 | 描述 |
---|---|
DEPLOYED | 已经部署字段lastReconciledSpec中的内容 |
UPGRADING | 当前flink正在升级中 |
ROLLING_BACK | 正在回滚到最后一次稳定版本,也就是lastStableSpec中的内容 |
ROLLED_BACK | 已经回滚到lastStableSpec中的状态 |
Savepoint
类: org.apache.flink.kubernetes.operator.api.status.Savepoint
描述: 表示已完成的savepoint信息
参数 | 类型 | 描述 |
---|---|---|
timeStamp | long | savepoint操作开始时的毫秒时间戳 |
location | java.lang.String | savepoint的外部指针,用来恢复job |
triggerType | org.apache.flink.kubernetes.operator.api.status.SavepointTriggerType | Savepoint触发机制 |
formatType | org.apache.flink.kubernetes.operator.api.status.SavepointFormatType | Savepoint格式化类型 |
triggerNonce | java.lang.Long | 手动触发savepoint的随机值 |
SavepointFormatType
类: org.apache.flink.kubernetes.operator.api.status.SavepointFormatType
描述: Savepoint格式化类型
可选内容 | 描述 |
---|---|
CANONICAL | 一种规范的,可以用于所有状态的后端格式 |
NATIVE | 一种特定选择的后端格式 |
UNKNOWN | 未知savepoint格式,一般用来标识不是operator触发的格式 |
SavepointInfo
类: org.apache.flink.kubernetes.operator.api.status.SavepointInfo
描述: 存储savepoint相关信息
参数 | 类型 | 描述 |
---|---|---|
lastSavepoint | org.apache.flink.kubernetes.operator.api.status.Savepoint | operator最后一次完成的savepoint |
triggerId | java.lang.String | 挂起的savepoint操作trigger id |
triggerTimestamp | java.lang.Long | 挂起的savepoint操作的触发时间戳 |
triggerType | org.apache.flink.kubernetes.operator.api.status.SavepointTriggerType | Savepoint 触发机制 |
formatType | org.apache.flink.kubernetes.operator.api.status.SavepointFormatType | Savepoint格式类型 |
savepointHistory | java.util.List<org.apache.flink.kubernetes.operator.api.status.Savepoint> | 当前savepoints的历史 |
lastPeriodicSavepointTimestamp | long | 最后一次定期savepoint保存执行的时间戳 |
SavepointTriggerType
类: org.apache.flink.kubernetes.operator.api.status.SavepointTriggerType
描述: Savepoint触发机制
可选值 | 描述 |
---|---|
MANUAL | 通过修改 savepointTriggerNonce手动触发savepoint |
PERIODIC | 通过operator定期触发savepoint |
UPGRADE | 有状态服务更新期间触发的savepoint |
UNKNOWN | 未知的savepoint触发机制,例如直接从flink job中检索savepoint |
TaskManagerInfo
类: org.apache.flink.kubernetes.operator.api.status.TaskManagerInfo
描述: 在应用部署期间最后一次观察到的flink job的状态
参数 | 类型 | 描述 |
---|---|---|
labelSelector | java.lang.String | TaskManager的标签选择器 |
replicas | int | flinkDeployment中定义的TaskManager replicas副本数 |