airflow.providers.cncf.kubernetes.operators.job
¶
执行 Kubernetes 作业。
模块内容¶
类¶
执行 Kubernetes 作业。 |
|
删除 Kubernetes 作业。 |
|
更新 Kubernetes 作业。 |
属性¶
- class airflow.providers.cncf.kubernetes.operators.job.KubernetesJobOperator(*, job_template_file=None, full_job_spec=None, backoff_limit=None, completion_mode=None, completions=None, manual_selector=None, parallelism=None, selector=None, suspend=None, ttl_seconds_after_finished=None, wait_until_job_complete=False, job_poll_interval=10, deferrable=conf.getboolean('operators', 'default_deferrable', fallback=False), **kwargs)[来源]¶
基类:
airflow.providers.cncf.kubernetes.operators.pod.KubernetesPodOperator
执行 Kubernetes 作业。
另请参阅
有关如何使用此操作符的更多信息,请参阅指南:KubernetesJobOperator
注意
如果您使用 Google Kubernetes Engine 并且 Airflow 没有在同一集群中运行,请考虑使用
GKEStartJobOperator
,这简化了授权过程。- 参数
job_template_file (str | None) – 作业模板文件的路径(已模板化)
full_job_spec (kubernetes.client.models.V1Job | None) – 完整的 JodSpec
backoff_limit (int | None) – 指定在将此作业标记为失败之前重试的次数。默认为 6
completion_mode (str | None) – CompletionMode 指定如何跟踪 Pod 完成。它可以是 NonIndexed (默认)或 Indexed。
completions (int | None) – 指定作业应运行的成功完成的 pod 的所需数量。
manual_selector (bool | None) – manualSelector 控制 pod 标签和 pod 选择器的生成。
parallelism (int | None) – 指定作业应在任何给定时间运行的最大所需 pod 数。
selector (kubernetes.client.models.V1LabelSelector | None) – 此 V1JobSpec 的选择器。
suspend (bool | None) – Suspend 指定作业控制器是否应该创建 Pod。
ttl_seconds_after_finished (int | None) – ttlSecondsAfterFinished 限制已完成执行(完成或失败)的作业的生命周期。
wait_until_job_complete (bool) – 是否等待直到启动的作业完成执行(完成或失败)。默认为 False。
job_poll_interval (float) – 轮询作业状态之间的间隔(秒)。默认为 10。如果参数 wait_until_job_complete 设置为 True,则使用此值。
deferrable (bool) – 在可延迟模式下运行操作符。请注意,参数 wait_until_job_complete 必须设置为 True。
- template_fields: collections.abc.Sequence[str][来源]¶
- static deserialize_job_template_file(path)[来源]¶
从文件生成作业。
不幸的是,我们需要访问 kubernetes 客户端中的私有方法
_ApiClient__deserialize_model
。此问题在此处跟踪:https://github.com/kubernetes-client/python/issues/977。- 参数
path (str) – 文件的路径
- 返回
kubernetes.client.models.V1Job
- 返回类型
kubernetes.client.models.V1Job
- on_kill()[source]¶
当任务实例被终止时,覆盖此方法以清理子进程。
在操作符中使用 threading、subprocess 或 multiprocessing 模块时,需要进行清理,否则会留下僵尸进程。
- build_job_request_obj(context=None)[source]¶
基于作业模板文件、完整作业规范和其他操作符参数返回 V1Job 对象。
V1Job 属性派生自(按优先级顺序)操作符参数、完整作业规范和作业模板文件。
- static reconcile_jobs(base_job, client_job)[source]¶
合并 Kubernetes 作业对象。
- 参数
base_job (kubernetes.client.models.V1Job) – 具有基本属性,如果它们存在于客户端作业中则会被覆盖,如果不存在于客户端作业中则会保留
client_job (kubernetes.client.models.V1Job | None) – 客户端想要创建的作业。
- 返回
合并后的作业
- 返回类型
kubernetes.client.models.V1Job
这不能以递归方式完成,因为某些字段会被覆盖,而某些字段会被连接起来。
- static reconcile_job_specs(base_spec, client_spec)[source]¶
合并 Kubernetes JobSpec 对象。
- 参数
base_spec (kubernetes.client.models.V1JobSpec | None) – 具有基本属性,如果它们存在于客户端规范中则会被覆盖,如果不存在于客户端规范中则会保留
client_spec (kubernetes.client.models.V1JobSpec | None) – 客户端想要创建的规范。
- 返回
合并后的规范
- 返回类型
kubernetes.client.models.V1JobSpec | None
- class airflow.providers.cncf.kubernetes.operators.job.KubernetesDeleteJobOperator(*, name, namespace, kubernetes_conn_id=KubernetesHook.default_conn_name, config_file=None, in_cluster=None, cluster_context=None, delete_on_status=None, wait_for_completion=False, poll_interval=10.0, **kwargs)[source]¶
基类:
airflow.models.BaseOperator
删除 Kubernetes 作业。
另请参阅
有关如何使用此操作符的更多信息,请查看指南: KubernetesDeleteJobOperator
- 参数
name (str) – 作业的名称。
namespace (str) – 在 Kubernetes 中运行的命名空间。
kubernetes_conn_id (str | None) – Kubernetes 集群的 Kubernetes 连接 ID。
config_file (str | None) – Kubernetes 配置文件路径。(已模板化)如果未指定,则默认值为
~/.kube/config
in_cluster (bool | None) – 使用 in_cluster 配置运行 kubernetes 客户端。
cluster_context (str | None) – 指向 kubernetes 集群的上下文。当 in_cluster 为 True 时忽略。如果为 None,则使用当前上下文。(已模板化)
delete_on_status (str | None) – 根据作业状态执行删除操作的条件。值:
None
- 无论作业状态如何都删除作业,“Complete” - 仅删除成功完成的作业,“Failed” - 仅删除失败的作业。(默认值:None
)wait_for_completion (bool) – 是否等待作业完成。(默认值:
False
)poll_interval (float) – 轮询作业状态之间的间隔(以秒为单位)。当设置 delete_on_status 参数时使用。(默认值:10.0)
- template_fields: collections.abc.Sequence[str] = ('config_file', 'name', 'namespace', 'cluster_context')[source]¶
- class airflow.providers.cncf.kubernetes.operators.job.KubernetesPatchJobOperator(*, name, namespace, body, kubernetes_conn_id=KubernetesHook.default_conn_name, config_file=None, in_cluster=None, cluster_context=None, **kwargs)[source]¶
基类:
airflow.models.BaseOperator
更新 Kubernetes 作业。
另请参阅
有关如何使用此操作符的更多信息,请查看指南:KubernetesPatchJobOperator
- 参数
name (str) – 作业的名称
namespace (str) – 在 Kubernetes 中运行的命名空间
body (object) – 具有更新参数的作业 json 对象 https://kubernetes.ac.cn/docs/reference/generated/kubernetes-api/v1.25/#job-v1-batch 例如
{"spec": {"suspend": True}}
kubernetes_conn_id (str | None) – Kubernetes 集群的 Kubernetes 连接 ID。
config_file (str | None) – Kubernetes 配置文件路径。(已模板化)如果未指定,则默认值为
~/.kube/config
in_cluster (bool | None) – 使用 in_cluster 配置运行 kubernetes 客户端。
cluster_context (str | None) – 指向 kubernetes 集群的上下文。当 in_cluster 为 True 时忽略。如果为 None,则使用当前上下文。(已模板化)
- template_fields: collections.abc.Sequence[str] = ('config_file', 'name', 'namespace', 'body', 'cluster_context')[source]¶