airflow.providers.cncf.kubernetes.hooks.kubernetes

属性

LOADING_KUBE_CONFIG_FILE_RESOURCE

JOB_FINAL_STATUS_CONDITION_TYPES

JOB_STATUS_CONDITION_TYPES

KubernetesHook

创建 Kubernetes API 连接。

AsyncKubernetesHook

异步使用 Kubernetes SDK 的 Hook。

模块内容

airflow.providers.cncf.kubernetes.hooks.kubernetes.LOADING_KUBE_CONFIG_FILE_RESOURCE = '正在加载 Kubernetes 配置文件 kube_config 从 {}...'[源码]
airflow.providers.cncf.kubernetes.hooks.kubernetes.JOB_FINAL_STATUS_CONDITION_TYPES[源码]
airflow.providers.cncf.kubernetes.hooks.kubernetes.JOB_STATUS_CONDITION_TYPES[源码]
class airflow.providers.cncf.kubernetes.hooks.kubernetes.KubernetesHook(conn_id=default_conn_name, client_configuration=None, cluster_context=None, config_file=None, in_cluster=None, disable_verify_ssl=None, disable_tcp_keepalive=None)[源码]

基类: airflow.hooks.base.BaseHook, airflow.providers.cncf.kubernetes.utils.pod_manager.PodOperatorHookProtocol

创建 Kubernetes API 连接。

  • 在连接中使用额外的 `in_cluster` 字段来使用集群内配置

  • 在连接中使用额外的 `kube_config_path` 字段提供文件路径来使用自定义配置

  • 在连接中通过额外的 `kube_config` 字段提供 kubeconfig 文件内容来使用自定义配置

  • 不提供额外字段来使用默认配置

此 hook 按照上述顺序检查配置选项。一旦某个选项存在,它将使用此配置。

另请参阅

有关 Kubernetes 连接的更多信息: Kubernetes 集群连接

参数:
  • conn_id (str | None) – 到 Kubernetes 集群的 Kubernetes 连接

  • client_configuration (kubernetes.client.Configuration | None) – 可选的客户端配置参数字典。传递给 kubernetes 客户端。

  • cluster_context (str | None) – 可选指定要使用的上下文(例如,如果您的 kubeconfig 中有多个上下文)。

  • config_file (str | None) – kubeconfig 文件路径。

  • in_cluster (bool | None) – 如果在 Kubernetes 集群内部运行,则设置为 True

  • disable_verify_ssl (bool | None) – 如果应禁用 SSL 验证,则设置为 True

  • disable_tcp_keepalive (bool | None) – 如果要禁用 TCP keepalive 逻辑,则设置为 True

conn_name_attr = 'kubernetes_conn_id'[源码]
default_conn_name = 'kubernetes_default'[源码]
conn_type = 'kubernetes'[源码]
hook_name = 'Kubernetes 集群连接'[源码]
DEFAULT_NAMESPACE = 'default'[源码]
classmethod get_connection_form_widgets()[源码]

返回要添加到连接表单的连接小部件。

classmethod get_ui_field_behaviour()[源码]

返回自定义字段行为。

conn_id = 'kubernetes_default'[源码]
client_configuration = None[源码]
cluster_context = None[源码]
config_file = None[源码]
in_cluster = None[源码]
disable_verify_ssl = None[源码]
disable_tcp_keepalive = None[源码]
classmethod get_connection(conn_id)[源码]

返回请求的连接。

如果连接缺失且 conn_id 为 "kubernetes_default",则返回空连接,以便 hook 默认使用集群派生的凭据。

property conn_extras[源码]
get_conn()[源码]

返回 kubernetes api session 以用于请求。

property is_in_cluster: bool[源码]

公开 hook 是否配置了 load_incluster_config

property api_client: kubernetes.client.ApiClient[源码]

缓存的 Kubernetes API 客户端。

property core_v1_client: kubernetes.client.CoreV1Api[源码]

获取已认证的客户端对象。

property apps_v1_client: kubernetes.client.AppsV1Api[源码]
property custom_object_client: kubernetes.client.CustomObjectsApi[源码]
property batch_v1_client: kubernetes.client.BatchV1Api[源码]
create_custom_object(group, version, plural, body, namespace=None)[源码]

在 Kubernetes 中创建自定义资源定义对象。

参数:
  • group (str) – api 组

  • version (str) – api 版本

  • plural (str) – api 复数

  • body (str | dict) – crd 对象定义

  • namespace (str | None) – kubernetes 命名空间

get_custom_object(group, version, plural, name, namespace=None)[源码]

从 Kubernetes 获取自定义资源定义对象。

参数:
  • group (str) – api 组

  • version (str) – api 版本

  • plural (str) – api 复数

  • name (str) – crd 对象名称

  • namespace (str | None) – kubernetes 命名空间

delete_custom_object(group, version, plural, name, namespace=None, **kwargs)[源码]

从 Kubernetes 删除自定义资源定义对象。

参数:
  • group (str) – api 组

  • version (str) – api 版本

  • plural (str) – api 复数

  • name (str) – crd 对象名称

  • namespace (str | None) – kubernetes 命名空间

get_namespace()[源码]

返回连接中定义的命名空间。

get_xcom_sidecar_container_image()[源码]

返回连接中定义的 xcom sidecar 镜像。

get_xcom_sidecar_container_resources()[源码]

返回连接中定义的 xcom sidecar 资源。

get_pod_log_stream(pod_name, container='', namespace=None)[源码]

检索 kubernetes pod 中容器的日志流。

参数:
  • pod_name (str) – pod 名称

  • container (str | None) – 容器名称

  • namespace (str | None) – kubernetes 命名空间

get_pod_logs(pod_name, container='', namespace=None)[源码]

从指定的 pod 检索容器的日志。

参数:
  • pod_name (str) – pod 名称

  • container (str | None) – 容器名称

  • namespace (str | None) – kubernetes 命名空间

get_pod(name, namespace)[源码]

从 kubernetes API 读取 pod 对象。

get_namespaced_pod_list(label_selector='', namespace=None, watch=False, **kwargs)[源码]

检索属于默认 kubernetes 命名空间的 Kind pod 列表。

参数:
  • label_selector (str | None) – 用于按标签限制返回对象列表的选择器

  • namespace (str | None) – kubernetes 命名空间

  • watch (bool) – 监视描述的资源的变化并将其作为流返回

get_deployment_status(name, namespace='default', **kwargs)[源码]

获取现有 Deployment 的状态。

参数:
  • name (str) – 要检索的 Deployment 名称

  • namespace (str) – Deployment 命名空间

create_job(job, **kwargs)[源码]

运行 Job。

参数:

job (kubernetes.client.models.V1Job) – 一个 kubernetes Job 对象

get_job(job_name, namespace)[源码]

获取指定名称和命名空间的 Job。

参数:
  • job_name (str) – 要获取的 Job 名称。

  • namespace (str) – Job 的命名空间。

返回:

Job 对象

返回类型:

kubernetes.client.models.V1Job

get_job_status(job_name, namespace)[源码]

获取指定名称和命名空间的 Job 状态。

参数:
  • job_name (str) – 要获取的 Job 名称。

  • namespace (str) – Job 的命名空间。

返回:

Job 对象

返回类型:

kubernetes.client.models.V1Job

wait_until_job_complete(job_name, namespace, job_poll_interval=10)[源码]

阻塞指定名称和命名空间的 Job,直到其完成或失败。

参数:
  • job_name (str) – 要获取的 Job 名称。

  • namespace (str) – Job 的命名空间。

  • job_poll_interval (float) – 轮询 Job 状态的间隔(秒)

返回:

Job 对象

返回类型:

kubernetes.client.models.V1Job

list_jobs_all_namespaces()[源码]

从所有命名空间获取 Job 列表。

返回:

V1JobList 对象

返回类型:

kubernetes.client.V1JobList

list_jobs_from_namespace(namespace)[源码]

从指定命名空间获取 Job 列表。

参数:

namespace (str) – Job 的命名空间。

返回:

V1JobList 对象

返回类型:

kubernetes.client.V1JobList

is_job_complete(job)[源码]

检查给定的 Job 是否完成(成功或失败)。

返回:

表示给定 Job 已完成的布尔值。

返回类型:

bool

static is_job_failed(job)[源码]

检查给定的 Job 是否失败。

返回:

如果 Job 失败则返回错误消息,否则返回 False。

返回类型:

str | bool

static is_job_successful(job)[源码]

检查给定的 Job 是否成功完成。

返回:

如果 Job 失败则返回错误消息,否则返回 False。

返回类型:

str | bool

patch_namespaced_job(job_name, namespace, body)[源码]

更新指定的 Job。

参数:
  • job_name (str) – Job 的名称

  • namespace (str) – 在 kubernetes 中运行的命名空间

  • body (object) – 包含更新参数的 json 对象

apply_from_yaml_file(api_client=None, yaml_file=None, yaml_objects=None, verbose=False, namespace='default')[source]

从 yaml 文件执行操作。

参数:
  • api_client (Any) – Kubernetes 客户端应用程序。

  • yaml_file (str | None) – 包含 yaml 文件的路径。

  • yaml_objects (list[dict] | None) – YAML 对象列表;用于代替读取 yaml 文件。

  • verbose (bool) – 如果为 True,则打印创建操作的确认信息。默认为 False。

  • namespace (str) – 包含要在其中创建所有资源的命名空间。该命名空间必须预先存在,否则资源创建将失败。

check_kueue_deployment_running(name, namespace, timeout=300.0, polling_period_seconds=2.0)[source]
static get_yaml_content_from_file(kueue_yaml_url)[source]

下载 YAML 文件内容并将其分成多个字典。

class airflow.providers.cncf.kubernetes.hooks.kubernetes.AsyncKubernetesHook(config_dict=None, *args, **kwargs)[source]

基类:KubernetesHook

异步使用 Kubernetes SDK 的 Hook。

config_dict = None[source]
async get_conn_extras()[source]
async get_conn()[source]

返回 kubernetes api session 以用于请求。

async get_pod(name, namespace)[source]

获取 pod 对象。

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

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

async delete_pod(name, namespace)[source]

删除 pod 对象。

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

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

async read_logs(name, namespace)[source]

在 pod 启动容器时读取 pod 内部的日志。

所有日志将与时间戳一起输出,以便在 pod 执行完成后跟踪日志。此方法仅用于在 pod 执行失败或任务被用户取消时异步输出日志。

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

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

async get_job_status(name, namespace)[source]

获取 job 状态对象。

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

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

async wait_until_job_complete(name, namespace, poll_interval=10)[source]

阻塞指定名称和命名空间的 Job,直到其完成或失败。

参数:
  • name (str) – 要获取的 Job 名称。

  • namespace (str) – Job 的命名空间。

  • poll_interval (float) – 轮询 job 状态的间隔时间(秒)。

返回:

Job 对象

返回类型:

kubernetes.client.models.V1Job

async wait_until_container_complete(name, namespace, container_name, poll_interval=10)[source]

等待给定 pod 中给定容器完成。

参数:
  • name (str) – 要获取的 Pod 名称。

  • namespace (str) – Pod 的命名空间。

  • container_name (str) – 要监控的 pod 中容器的名称

  • poll_interval (float) – 轮询容器状态的间隔时间(秒)。

async wait_until_container_started(name, namespace, container_name, poll_interval=10)[source]

等待给定 pod 中给定容器启动。

参数:
  • name (str) – 要获取的 Pod 名称。

  • namespace (str) – Pod 的命名空间。

  • container_name (str) – 要监控的 pod 中容器的名称

  • poll_interval (float) – 轮询容器状态的间隔时间(秒)。

此条目是否有帮助?