#docker #argo-workflows
Вопрос:
У меня есть проблема при запуске рабочих процессов argo в некотором масштабе. Некоторые модули переходят в состояние инициализации модуля на неопределенный срок, и когда я смотрю на события, это происходит из-за того, что изображение argo-exec не может быть извлечено из-за ограничений скорости извлечения изображения docker с того же IP/анонимного пользователя. Я не знаю, как это обойти.
Как я могу это обойти?
- возможно ли/рекомендуется сохранить изображение argo docker в моем собственном репозитории (возможно, обновить карту конфигурации контроллера, чтобы указать на нее) или
- есть ли способ управлять аутентифицированным доступом к докеру при извлечении изображения. Последнее не похоже на решение, хотя, возможно, это просто означает, что у меня больше квоты, но она все еще ограничена.
- Кажется, что в любом случае не должно быть необходимости продолжать вытаскивать это изображение, так что, может быть, в конфигурации есть что-то, где я могу это контролировать?? Этот последний вариант кажется идеальным, если это так.
Ответ №1:
Отвечаю на ваш ответ — начиная с последнего.
Вопрос 3:
Кажется, что в любом случае не должно быть необходимости продолжать вытаскивать это изображение, так что, может быть, в конфигурации есть что-то, где я могу это контролировать??
Ответ:
Реестр докеров, из которого вы извлекаете данные, вероятно, имеет ограничение по скорости.
Я бы посоветовал вам сделать то же самое, что вы сделали бы в Docker/K8s — используйте imagePullPolicy
поле.
Ознакомьтесь с документами рабочего процесса argo в разделе спецификация контейнера.
Пример:
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
name: daemon-nginx
spec:
entrypoint: daemon-nginx-example
templates:
- name: daemon-nginx-example
steps:
- - name: nginx-server
template: nginx-server
- name: nginx-server
daemon: true
container:
image: nginx:1.13
imagePullPolicy: IfNotPresent # <---- Here
readinessProbe:
httpGet:
path: /
port: "80"
initialDelaySeconds: 2
timeoutSeconds: 1
Вопрос 1:
возможно ли/рекомендуется сохранить изображение argo docker в моем собственном репозитории (возможно, обновить карту конфигурации контроллера, чтобы указать на нее)
Ответ:
Не является обязательным для решения вопроса об ограничении ставок.
Вопрос 2:
есть ли способ управлять аутентифицированным доступом к докеру при извлечении изображения..
Ответ:
По той же ссылке, которой я поделился — проверьте imagePullSecrets
опцию.
Если вы не знакомы с этой концепцией в K8S — я предлагаю вам прочитать «Извлеките изображение из частного реестра«.