Kubernetes 集群连接¶
Kubernetes 集群连接类型允许通过 SparkKubernetesOperator
任务和 KubernetesPodOperator
任务连接到 Kubernetes 集群。
认证到 Kubernetes 集群¶
有多种方法可以使用 Airflow 连接到 Kubernetes。
使用位于机器默认位置 (~/.kube/config) 的 kube_config - 只需将所有字段留空
如果 Airflow 在 Kubernetes 集群内运行,则使用集群内配置,从集群获取配置 - 标记:集群内配置
使用不同位置的 kube_config - 将路径插入到
Kube config 路径
从连接配置中使用 JSON 格式的 kube_config - 将 kube_config 粘贴到
Kube config (JSON 格式)
默认连接 ID¶
默认连接 ID 是 kubernetes_default
。
配置连接¶
- 集群内配置
使用集群内配置。
- Kube config 路径
使用 kube config 的自定义路径。
- Kube config (JSON 格式)
Kube config 用于连接到 Kubernetes 客户端。
- 命名空间
连接的默认 Kubernetes 命名空间。
- 集群上下文
使用 kube config 时,可以指定要使用的上下文。
- 禁用 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"}}'