airflow.providers.cncf.kubernetes.triggers.pod

模組內容

類別

ContainerState

可能的容器狀態。

KubernetesPodTrigger

KubernetesPodTrigger 在觸發器 worker 上運行以檢查 Pod 的狀態。

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

繼承自: str, enum.Enum

可能的容器狀態。

參見 https://kubernetes.dev.org.tw/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 在觸發器 worker 上運行以檢查 Pod 的狀態。

參數
  • pod_name (str) – Pod 的名稱。

  • pod_namespace (str) – Pod 的命名空間。

  • kubernetes_conn_id (str | None) – Kubernetes 集群的 kubernetes 連線 ID

  • cluster_context (str | None) – 指向 Kubernetes 集群的 Context。

  • config_dict (dict | None) – kubeconfig 檔案內容,以 dict 格式呈現。

  • poll_interval (float) – 輪詢週期,以秒為單位,用於檢查狀態。

  • trigger_start_time (datetime.datetime) – 觸發器啟動時間,Datetime 格式。

  • in_cluster (bool | None) – 使用 in-cluster 設定執行 Kubernetes client。

  • get_logs (bool) – 取得容器的 stdout 作為任務日誌。

  • startup_timeout (int) – 啟動 Pod 的逾時時間,以秒為單位。

  • startup_check_interval (int) – 檢查 Pod 是否已啟動的間隔時間,以秒為單位。

  • on_finish_action (str) – 當 Pod 達到最終狀態或執行中斷時要執行的動作。如果為 “delete_pod”,則無論其狀態如何都將刪除 Pod;如果為 “delete_succeeded_pod”,則僅刪除成功的 Pod。您可以設定為 “keep_pod” 以保留 Pod。

  • logging_interval (int | None) – 在將其返回給 operator 以列印最新日誌之前等待的秒數。如果為 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)[source]

這篇文章是否有幫助?