airflow.providers.cncf.kubernetes.utils.pod_manager
¶
啟動 POD。
模組內容¶
類別¶
可能的 Pod 階段。 |
|
定義 KubernetesPodOperator 所依賴方法的協議。 |
|
從 fetch_container_logs 退出時,返回 Pod 的狀態和上次日誌時間。 |
|
創建、監控 Kubernetes Pod,並與之互動,以便與 KubernetesPodOperator 一起使用。 |
|
Pod 完成時要採取的動作。 |
函數¶
|
檢查 Exception 是否指示暫時性錯誤並值得重試。 |
|
檢索容器狀態。 |
|
檢查 V1Pod |
|
檢查 V1Pod |
|
檢查 V1Pod |
|
檢查 V1Pod |
|
檢查 V1Pod |
|
|
|
檢查該行是否為日誌群組標記,例如 ::group:: 或 ::endgroup::。 |
- exception airflow.providers.cncf.kubernetes.utils.pod_manager.PodLaunchFailedException[source]¶
基礎:
airflow.exceptions.AirflowException
當在 KubernetesPodOperator 中啟動 Pod 失敗時。
- airflow.providers.cncf.kubernetes.utils.pod_manager.should_retry_start_pod(exception)[source]¶
檢查 Exception 是否指示暫時性錯誤並值得重試。
- class airflow.providers.cncf.kubernetes.utils.pod_manager.PodPhase[source]¶
可能的 Pod 階段。
請參閱 https://kubernetes.dev.org.tw/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase。
- class airflow.providers.cncf.kubernetes.utils.pod_manager.PodOperatorHookProtocol[source]¶
基礎:
Protocol
定義 KubernetesPodOperator 所依賴方法的協議。
KubernetesPodOperator 的子類別,例如 GKEStartPodOperator,可能會使用未擴展 KubernetesHook 的 Hook。我們使用此協議來記錄 KPO 使用的方法,並確保這些方法存在於其他此類 Hook 上。
- airflow.providers.cncf.kubernetes.utils.pod_manager.get_container_status(pod, container_name)[source]¶
檢索容器狀態。
- airflow.providers.cncf.kubernetes.utils.pod_manager.container_is_running(pod, container_name)[source]¶
檢查 V1Pod
pod
以確定container_name
是否正在運行。如果該容器存在且正在運行,則返回 True。否則返回 False。
- airflow.providers.cncf.kubernetes.utils.pod_manager.container_is_completed(pod, container_name)[source]¶
檢查 V1Pod
pod
以確定container_name
是否已完成。如果該容器存在且已完成,則返回 True。否則返回 False。
- airflow.providers.cncf.kubernetes.utils.pod_manager.container_is_succeeded(pod, container_name)[source]¶
檢查 V1Pod
pod
以確定container_name
是否已完成並成功。如果該容器存在、已完成且已成功,則返回 True。否則返回 False。
- airflow.providers.cncf.kubernetes.utils.pod_manager.container_is_wait(pod, container_name)[source]¶
檢查 V1Pod
pod
以確定container_name
是否正在等待。如果該容器存在且正在等待,則返回 True。否則返回 False。
- airflow.providers.cncf.kubernetes.utils.pod_manager.container_is_terminated(pod, container_name)[source]¶
檢查 V1Pod
pod
以確定container_name
是否已終止。如果該容器存在且已終止,則返回 True。否則返回 False。
- airflow.providers.cncf.kubernetes.utils.pod_manager.get_container_termination_message(pod, container_name)[source]¶
- airflow.providers.cncf.kubernetes.utils.pod_manager.check_exception_is_kubernetes_api_unauthorized(exc)[source]¶
- exception airflow.providers.cncf.kubernetes.utils.pod_manager.PodLaunchTimeoutException[source]¶
基礎:
airflow.exceptions.AirflowException
當 Pod 在指定的超時時間內未離開 `Pending` 階段時。
- exception airflow.providers.cncf.kubernetes.utils.pod_manager.PodNotFoundException[source]¶
基礎:
airflow.exceptions.AirflowException
預期的 Pod 在 kube-api 中不存在。
- class airflow.providers.cncf.kubernetes.utils.pod_manager.PodLoggingStatus[source]¶
從 fetch_container_logs 退出時,返回 Pod 的狀態和上次日誌時間。
- class airflow.providers.cncf.kubernetes.utils.pod_manager.PodManager(kube_client, callbacks=None)[source]¶
基礎:
airflow.utils.log.logging_mixin.LoggingMixin
創建、監控 Kubernetes Pod,並與之互動,以便與 KubernetesPodOperator 一起使用。
- await_pod_start(pod, startup_timeout=120, startup_check_interval=1)[source]¶
等待 Pod 達到
Pending
以外的階段。
- await_container_completion(pod, container_name)[source]¶
等待給定 Pod 中的給定容器完成。
- 參數
pod (kubernetes.client.models.v1_pod.V1Pod) – 將被監控的 Pod 規範
container_name (str) – Pod 內要監控的容器名稱
- read_pod_logs(pod, container_name, tail_lines=None, timestamps=False, since_seconds=None, follow=True, post_termination_timeout=120, **kwargs)[source]¶
從 POD 讀取日誌。