这里展示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副本数 |