【发布时间】:2019-10-14 17:42:21
【问题描述】:
Apache Airflow 的KubernetesPodOperator 如何从私有存储库中拉取 docker 镜像?
KubernetesPodOperator 有一个image_pull_secrets,您可以将Secrets 对象传递给私有存储库进行身份验证。但是 secrets 对象只能表示一个环境变量或一个卷——这两者都不符合我对 Kubernetes 如何使用 secret 对私有 repos 进行身份验证的理解。
使用kubectl,您可以创建所需的秘密,例如
$ kubectl create secret docker-registry $SECRET_NAME \
--docker-server=https://${ACCOUNT}.dkr.ecr.${REGION}.amazonaws.com \
--docker-username=AWS \
--docker-password="${TOKEN}" \
--docker-email="${EMAIL}"
但是如何在 Airflow 中创建身份验证密钥?
【问题讨论】:
-
您的意思是
image_pull_secrets=明确记录在精美手册中? -
顺便说一句,
docker-server不是https://合格的,因为这是暗示的;因此,如果您在create secret命令中确实使用这些字符,那也是它不起作用的一个很好的理由 -
@danodonovan 你用的是什么平台?您使用的是哪些版本的 kubernetes 和 Airflow?
-
感谢@PiotrMalec - 它是 Google Cloud Composer,所以 Airflow 10.2 和 K8 1.13.7-gke.24 FWIW 我意识到
image_pull_secrets指的是 Kubernetes 机密,而不是 Airflow 机密(其中我认为解决了这个问题)但我仍然无法开始工作。进一步调试后,Google Composer 教程 K8 脚本也不起作用,所以我感觉问题不至于此!
标签: kubernetes airflow