配置参考¶
此页面包含 apache-airflow-providers-cncf-kubernetes
提供的所有可用 Airflow 配置列表,这些配置可以在 airflow.cfg
文件中或使用环境变量进行设置。
注意
Provider 中嵌入的配置自 Airflow 2.7.0 版本开始使用。之前,配置是在 Airflow 核心包中描述和配置的——因此,如果您使用的是低于 2.7.0 的 Airflow 版本,请查阅 Airflow 文档,了解 Airflow 核心包中提供的可用配置选项列表。
注意
更多信息请参见 设置配置选项。
[kubernetes_executor]¶
api_client_retry_configuration¶
Kwargs,用于覆盖 kubernetes API 客户端中使用的默认 urllib3 Retry
- 类型:
string
- 默认值:
''
- 环境变量:
AIRFLOW__KUBERNETES_EXECUTOR__API_CLIENT_RETRY_CONFIGURATION
- 示例:
{ "total": 3, "backoff_factor": 0.5 }
cluster_context¶
当 in_cluster=False
时,更改 Kubernetes 客户端的默认 cluster_context
或 config_file
选项。留空可使用 kubectl
的默认行为。
- 类型:
string
- 默认值:
None
- 环境变量:
AIRFLOW__KUBERNETES_EXECUTOR__CLUSTER_CONTEXT
config_file¶
当 in_cluster
设置为 False 时使用的 kubernetes 配置文件路径
- 类型:
string
- 默认值:
None
- 环境变量:
AIRFLOW__KUBERNETES_EXECUTOR__CONFIG_FILE
delete_option_kwargs¶
使用 Kubernetes Executor 时,传递给 kubernetes 客户端 core_v1_api
方法 delete_namespaced_pod
的可选关键字参数。这应该是一个对象,可以包含此处 https://github.com/kubernetes-client/python/blob/41f11a09995efcd0142e25946adc7591431bfb2f/kubernetes/client/models/v1_delete_options.py#L19 定义的 v1DeleteOptions
类中列出的任何选项。
- 类型:
string
- 默认值:
''
- 环境变量:
AIRFLOW__KUBERNETES_EXECUTOR__DELETE_OPTION_KWARGS
- 示例:
{"grace_period_seconds": 10}
delete_worker_pods¶
如果为 True,则所有 worker pod 在终止时都会被删除
- 类型:
string
- 默认值:
True
- 环境变量:
AIRFLOW__KUBERNETES_EXECUTOR__DELETE_WORKER_PODS
delete_worker_pods_on_failure¶
如果为 False(且 delete_worker_pods 为 True),失败的 worker pod 将不会被删除,以便用户可以调查它们。这仅阻止删除 worker 本身失败的 pod,而不是其运行的任务失败的 pod。
- 类型:
string
- 默认值:
False
- 环境变量:
AIRFLOW__KUBERNETES_EXECUTOR__DELETE_WORKER_PODS_ON_FAILURE
enable_tcp_keepalive¶
启用 TCP keepalive 机制。这可以防止空闲连接在云负载均衡器或防火墙等服务上超时时,Kubernetes API 请求无限期挂起。
- 类型:
boolean
- 默认值:
True
- 环境变量:
AIRFLOW__KUBERNETES_EXECUTOR__ENABLE_TCP_KEEPALIVE
in_cluster¶
使用 kubernetes 提供给 pod 的 service account 连接到 kubernetes 集群。它适用于期望在运行于 kubernetes 上的 pod 内运行的客户端。如果在非 kubernetes 环境中的进程中调用,它将引发异常。
- 类型:
string
- 默认值:
True
- 环境变量:
AIRFLOW__KUBERNETES_EXECUTOR__IN_CLUSTER
kube_client_request_args¶
从 Kubernetes Executor 调用 kubernetes 客户端 core_v1_api
方法时传递的关键字参数,以单行格式化的 JSON 字典字符串提供。所有 core_v1_apis
支持的参数列表类似,因此所有 api 使用一个 config 变量。参见:https://raw.githubusercontent.com/kubernetes-client/python/41f11a09995efcd0142e25946adc7591431bfb2f/kubernetes/client/api/core_v1_api.py
- 类型:
string
- 默认值:
''
- 环境变量:
AIRFLOW__KUBERNETES_EXECUTOR__KUBE_CLIENT_REQUEST_ARGS
logs_task_metadata¶
用于控制添加到 kubernetes executor 日志中的信息以便更好地追踪的标志
- 类型:
boolean
- 默认值:
False
- 环境变量:
AIRFLOW__KUBERNETES_EXECUTOR__LOGS_TASK_METADATA
multi_namespace_mode¶
允许用户在多个命名空间中启动 pod。这将需要为 scheduler 创建 cluster-role,或者使用 multi_namespace_mode_namespace_list
配置。
- 类型:
boolean
- 默认值:
False
- 环境变量:
AIRFLOW__KUBERNETES_EXECUTOR__MULTI_NAMESPACE_MODE
multi_namespace_mode_namespace_list¶
如果在 multi_namespace_mode 为 True 且 scheduler 没有 cluster-role 时,提供 scheduler 将调度作业的命名空间列表。Scheduler 需要在这些命名空间中拥有必要的权限。
- 类型:
string
- 默认值:
''
- 环境变量:
AIRFLOW__KUBERNETES_EXECUTOR__MULTI_NAMESPACE_MODE_NAMESPACE_LIST
namespace¶
创建 airflow worker 的 Kubernetes 命名空间。默认为 default
- 类型:
string
- 默认值:
default
- 环境变量:
AIRFLOW__KUBERNETES_EXECUTOR__NAMESPACE
pod_template_file¶
作为 KubernetesExecutor worker 基础的 YAML pod 文件路径。
另请参阅
- 类型:
string
- 默认值:
''
- 环境变量:
AIRFLOW__KUBERNETES_EXECUTOR__POD_TEMPLATE_FILE
ssl_ca_cert¶
CA 证书的路径,Kubernetes 客户端将使用它来验证服务器的 SSL 证书。
- 类型:
string
- 默认值:
''
- 环境变量:
AIRFLOW__KUBERNETES_EXECUTOR__SSL_CA_CERT
task_publish_max_retries¶
由于 Kube API 超出配额错误而导致任务排队到 kubernetes scheduler 失败时的最大重试次数,直到放弃并将任务标记为失败。-1 表示无限次。
- 类型:
integer
- 默认值:
0
- 环境变量:
AIRFLOW__KUBERNETES_EXECUTOR__TASK_PUBLISH_MAX_RETRIES
tcp_keep_cnt¶
当启用 enable_tcp_keepalive 选项时,如果 Kubernetes API 未响应 keepalive 探测,TCP 将重传探测 tcp_keep_cnt 次,然后连接才被视为断开。
- 类型:
integer
- 默认值:
6
- 环境变量:
AIRFLOW__KUBERNETES_EXECUTOR__TCP_KEEP_CNT
tcp_keep_idle¶
当启用 enable_tcp_keepalive 选项时,如果连接空闲了 tcp_keep_idle 秒,TCP 将探测连接。
- 类型:
integer
- 默认值:
120
- 环境变量:
AIRFLOW__KUBERNETES_EXECUTOR__TCP_KEEP_IDLE
tcp_keep_intvl¶
当启用 enable_tcp_keepalive 选项时,如果 Kubernetes API 未响应 keepalive 探测,TCP 将在 tcp_keep_intvl 秒后重传探测。
- 类型:
integer
- 默认值:
30
- 环境变量:
AIRFLOW__KUBERNETES_EXECUTOR__TCP_KEEP_INTVL
verify_ssl¶
将其设置为 false 以跳过验证 Kubernetes python 客户端的 SSL 证书。
- 类型:
boolean
- 默认值:
True
- 环境变量:
AIRFLOW__KUBERNETES_EXECUTOR__VERIFY_SSL
worker_container_repository¶
Worker 运行的 Kubernetes 镜像仓库
- 类型:
string
- 默认值:
''
- 环境变量:
AIRFLOW__KUBERNETES_EXECUTOR__WORKER_CONTAINER_REPOSITORY
worker_container_tag¶
Worker 运行的 Kubernetes 镜像标签
- 类型:
string
- 默认值:
''
- 环境变量:
AIRFLOW__KUBERNETES_EXECUTOR__WORKER_CONTAINER_TAG
worker_pod_pending_fatal_container_state_reasons¶
新增于 8.1.0 版本。
如果 worker pod 由于致命的容器状态原因而处于 pending 状态,则使任务失败,并在 delete_worker_pods 为 True 且 delete_worker_pods_on_failure 为 True 时删除 worker pod。
- 类型:
string
- 默认值:
CreateContainerConfigError,ErrImagePull,CreateContainerError,ImageInspectError, InvalidImageName
- 环境变量:
AIRFLOW__KUBERNETES_EXECUTOR__WORKER_POD_PENDING_FATAL_CONTAINER_STATE_REASONS
worker_pods_creation_batch_size¶
每个 scheduler 循环创建 Kubernetes Worker Pod 的调用次数。请注意,当前默认值“1”意味着每个心跳仅启动一个 pod。强烈建议用户增加此数字以匹配其 kubernetes 集群的容忍度,从而获得更好的性能。
- 类型:
string
- 默认值:
1
- 环境变量:
AIRFLOW__KUBERNETES_EXECUTOR__WORKER_PODS_CREATION_BATCH_SIZE
[local_kubernetes_executor]¶
本节仅适用于您在上面的 [core]
部分使用了 LocalKubernetesExecutor
。
kubernetes_queue¶
定义使用 LocalKubernetesExecutor
时何时将任务发送到 KubernetesExecutor
。当任务的队列是 kubernetes_queue
的值(默认为 kubernetes
)时,任务通过 KubernetesExecutor
执行;否则通过 LocalExecutor
执行。
- 类型:
string
- 默认值:
kubernetes
- 环境变量:
AIRFLOW__LOCAL_KUBERNETES_EXECUTOR__KUBERNETES_QUEUE