airflow.providers.cncf.kubernetes.triggers.pod

模块内容

ContainerState

可能的容器状态。

KubernetesPodTrigger

KubernetesPodTrigger 在触发器工作器上运行,以检查 Pod 的状态。

class airflow.providers.cncf.kubernetes.triggers.pod.ContainerState[source]

基类:str, enum.Enum

可能的容器状态。

参见 https://kubernetes.ac.cn/zh-cn/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase

WAITING = 'waiting'[source]
RUNNING = 'running'[source]
TERMINATED = 'terminated'[source]
FAILED = 'failed'[source]
UNDEFINED = 'undefined'[source]
class airflow.providers.cncf.kubernetes.triggers.pod.KubernetesPodTrigger(pod_name, pod_namespace, trigger_start_time, base_container_name, kubernetes_conn_id=None, poll_interval=2, cluster_context=None, config_dict=None, in_cluster=None, get_logs=True, startup_timeout=120, startup_check_interval=5, on_finish_action='delete_pod', last_log_time=None, logging_interval=None)[source]

基类:airflow.triggers.base.BaseTrigger

KubernetesPodTrigger 在触发器工作器上运行,以检查 Pod 的状态。

参数
  • pod_name (str) – pod 的名称。

  • pod_namespace (str) – pod 的命名空间。

  • kubernetes_conn_id (str | None) – 用于 Kubernetes 集群的kubernetes 连接 ID

  • cluster_context (str | None) – 指向 kubernetes 集群的上下文。

  • config_dict (dict | None) – 字典格式的 kubeconfig 文件内容。

  • poll_interval (float) – 检查状态的轮询间隔(秒)。

  • trigger_start_time (datetime.datetime) – 触发器启动时的 Datetime 格式时间

  • in_cluster (bool | None) – 使用 in_cluster 配置运行 kubernetes 客户端。

  • get_logs (bool) – 获取容器的 stdout 作为任务的日志。

  • startup_timeout (int) – 启动 pod 的超时时间(秒)。

  • startup_check_interval (int) – 检查 pod 是否已启动的间隔(秒)。

  • on_finish_action (str) – 当 pod 达到其最终状态或执行中断时要执行的操作。如果为 “delete_pod”,则无论 pod 的状态如何都将删除该 pod;如果为 “delete_succeeded_pod”,则仅删除成功的 pod。您可以设置为 “keep_pod” 以保留 pod。

  • logging_interval (int | None) – 等待多少秒后再将控制权返回给操作员以打印最新日志。如果为 None 将等待直到容器完成。

  • last_log_time (pendulum.DateTime | None) – 从哪里恢复日志

serialize()[source]

序列化 KubernetesCreatePodTrigger 参数和 classpath。

async run()[source]

获取当前 pod 状态并产生一个 TriggerEvent。

hook()[source]
define_container_state(pod)[source]
static should_wait(pod_phase, container_state)[源代码]

这个条目有用吗?