Kubernetes 集群连接¶
Kubernetes 集群连接类型可以通过 SparkKubernetesOperator
任务和 KubernetesPodOperator
任务连接到 Kubernetes 集群。
认证到 Kubernetes 集群¶
使用 Airflow 连接到 Kubernetes 有几种不同的方式。
使用位于机器默认位置 (~/.kube/config) 的 kube_config - 只需留空所有字段
如果 Airflow 在 Kubernetes 集群内部运行,则使用 in_cluster 配置,从集群获取配置 - 标记:集群内配置
使用其他位置的 kube_config - 将路径插入到
Kube config path
中从连接配置中使用 JSON 格式的 kube_config - 将 kube_config 粘贴到
Kube config (JSON format)
中
默认连接 ID¶
默认连接 ID 是 kubernetes_default
。
配置连接¶
- 集群内配置
使用集群内配置。
- Kube 配置路径
使用自定义的 kube 配置路径。
- Kube 配置 (JSON 格式)
用于连接到 Kubernetes 客户端的 Kube 配置。
- 命名空间
连接的默认 Kubernetes 命名空间。
- 集群上下文
使用 kube 配置时,可以指定要使用的上下文。
- 禁用 SSL 验证
可以选择禁用 SSL 证书验证。默认情况下会验证 SSL。
- 禁用 TCP keepalive
TCP keepalive 是一项功能(默认启用),用于尝试保持长时间连接处于活动状态。将此参数设置为 True 以禁用此功能。
- Xcom sidecar 镜像
定义
PodDefaults.SIDECAR_CONTAINER
使用的image
(默认为"alpine"
),以允许使用私有仓库以及自定义镜像覆盖。
使用 URI 格式将连接存储在环境变量中的示例
AIRFLOW_CONN_KUBERNETES_DEFAULT='kubernetes://?in_cluster=True&kube_config_path=~%2F.kube%2Fconfig&kube_config=kubeconfig+json&namespace=namespace'
以及使用 JSON 格式
AIRFLOW_CONN_KUBERNETES_DEFAULT='{"conn_type": "kubernetes", "extra": {"in_cluster": true, "kube_config_path": "~/.kube/config", "namespace": "my-namespace"}}'