Существует secret
объект с docker-registry
типом согласно kubernetes документация , который можно использовать для аутентификации в частном хранилище.
Как вы упомянули в своем вопросе;Вы можете использовать от kubectl
до создания секрета docker-registry
типа , который затем можно попытаться передать с помощью image_pull_secrets
.
Однако в зависимости от платформы Выиспользование этого может иметь ограниченное или вообще не использовать согласно документации kubernetes :
Настройка узлов для аутентификации в частном реестре
Примечание: Если вы работаете в Google Kubernetes Engine, на каждом узле уже будет .dockercfg
с учетными данными для реестра контейнеров Google. Вы не можете использовать этот подход.
Примечание: Если вы работаете в AWS EC2 и используете реестр контейнеров EC2 (ECR), кублет на каждом узле будет управлять и обновлять имя входа ECRполномочия. Вы не можете использовать этот подход.
Примечание: Этот подход подходит, если вы можете контролировать конфигурацию узла. Он не будет надежно работать на GCE и любом другом облачном провайдере, который выполняет автоматическую замену узла.
Примечание: Kubernetes на данный момент поддерживает только раздел докера auths
и HttpHeaders
конфигурации. Это означает, что помощники по учетным данным (credHelpers
или credsStore
) не поддерживаются.
Выполнение этой работы на упомянутых платформах возможно, но для этого потребуются автоматизированные сценарии и сторонние инструменты.
Как в примере с Amazon ECR: Помощник по учетным данным Amazon ECR потребуется для периодического извлечения учетных данных AWS в конфигурацию реестра Docker, а затем для создания другого сценария для обновления секретов реестра Dober-реестра Kubernetes.
Asдля самого Airflow я не думаю, что у него есть функциональность, позволяющая создавать свои собственные секреты Docker-репозитория. Вы можете запросить такую функциональность в Apache Airflow JIRA .
PS
Если у вас все еще есть проблемы с кластером K8s, возможно, вы захотите создать новый вопрос о стеке, обращаясь к ним.