如何将单个文件作为卷挂载到 KubernetesPodOperator?

Dav*_*way 5 google-kubernetes-engine airflow google-cloud-composer

我有一个 docker 映像,需要在启动时安装 JSON 凭证文件。容器通过如下命令启动:

docker run -v [CREDENTIALS_FILE]:/credentials.json image_name

该映像位于 Google 容器注册表中,我想使用 KubernetesPodOperator 在 Cloud Composer dag 中启动它。

有没有办法通过 KubernetesPodOperator 挂载单个文件?理想情况下,该文件将托管在云存储位置。我读到有一个volume/volume_mount选项,但传递单个文件似乎是一件繁重的事情——希望还有另一个我忽略的选项。

KubernetesPodOperator(namespace='default',
                      image="gcr.io/image_name,
                      name="start-container-image",
                      task_id="start-container-image",
                      volume=[?],
                      volume_mounts=[?],
                      dag=dag)
Run Code Online (Sandbox Code Playgroud)

Pat*_*k W 1

k8s 允许您挂载卷(静态数据的configMap就可以,而且不是非常繁重的工作)。否则,如果您需要从不支持支持 PV(例如 GCS)的远程存储中提取数据,则需要直接提取数据。

您可能需要考虑使用 initContainer 它仅用于从远程存储下载数据并将其保存在本地,以便您的主应用程序可以在本地使用数据运行。