【发布时间】:2020-10-16 00:39:17
【问题描述】:
我在使用 KubernetesPodOperator 的气流中有一个 DAG,我正在尝试将在 pod 中运行的容器生成的一些文件返回到气流主机。对于开发,我的主机是一个运行 airflow image 和 docker-desktop K8s 集群的 Docker 容器,对于生产,我使用带有 EKS 的 AWS EC2 盒。
volume_mount = VolumeMount('dbt-home',
mount_path=<CONTAINER_DIR>,
sub_path=None,
read_only=False)
volume_config= {
'hostPath':
{'path': <HOST_DIR>, 'type': 'DirectoryOrCreate'}
}
volume = Volume(name="dbt-home", configs=volume_config)
dbt_run = KubernetesPodOperator(
namespace='default',
image=MY_IMAGE>,
cmds=["bash", "-cx"],
arguments=[command],
env_vars=MY_ENVIRONMENT,
volumes=[volume],
volume_mounts=[volume_mount],
name="test-run",
task_id="test-run-task",
config_file=config_file,
get_logs=True,
reattach_on_restart=True,
dag=dag
)
我尝试对卷使用 hostPath 类型,但我认为它指的是 pod 的主机。我查看了有关卷的 kubernetes 文档,其中我发现 EmptyDir 也没有解决。
【问题讨论】:
-
我想我可能会提供帮助,因为我使用 PodOperator 和挂载卷,但我不太明白你在问什么。所以,你正在生成一个 pod 来运行你的 DAG,你想挂载什么卷?
-
嗨@Howard_Roark 我正在从 Airflow DAG 内部生成一个 pod 来运行任务。我在 EC2 上托管了 Airflow。一些日志文件是由任务在 pod 容器中生成的。我想将这些日志文件返回到 Airflow 主机上,以供下一个任务使用。
标签: python docker kubernetes airflow