配置參考¶
此頁面包含 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