配置參考

此頁面包含 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_contextconfig_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 檔案路徑。

另請參閱

pod_template_file

型別:

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

此條目是否有幫助?