Size: a a a

Kubernetes — русскоговорящее сообщество

2020 September 16

GG

George Gaál in Kubernetes — русскоговорящее сообщество
Ilya
Всем привет. Есть вопрос по организации стораджа для кубернетиса. Допустим у меня микросервисная архитектура, по сути каждый сервис занимается некоторым процессингом файлов. Понятно что каждый сервис может качать из хранилища файл обрабатывать его и удалять. Но хочется чтобы не было дублирования трафика при условии нахождения сервисов на одной ноде и получении одного и того же файла. Т.е. чтобы было какое-то локальное кэширование, если какой-либо сервис на данной ноде уже скачал файл, то мы повторно сторадж не спрашиваем, а отдаем локально. Как можно добиться такого эффекта? Куда вообще погуглить можно, что-то ничего не найду...
вообще странного хочешь
источник

GG

George Gaál in Kubernetes — русскоговорящее сообщество
обычно решается поднятием сбоку с3 и работой с ним
источник

I

Ilya in Kubernetes — русскоговорящее сообщество
Timofey Larkin
Это очень неправильный подход. Если используя кубер хочется иметь в виду, что у тебя есть ноды и поды могут оказываться вместе на одной ноде, тут явно что-то не так делается. Если до кучи шарятся файлики между микросервисами, то это не (микро)сервисная архитектуры, это хз что.
ну а почему нет, если подов больше чем нод, они вполне могут оказаться на одной ноде. шаринг файлов тоже норм - это система обработки файлов, каждый сервис обрабатывает  файл получается какие то результаты и прокидывает дальше есть некий пайплайн обработки файла.
источник

GG

George Gaál in Kubernetes — русскоговорящее сообщество
если у тебя пайплайн обработки файла - опять же - внешнее хранилище
источник

НС

Никита Суворов... in Kubernetes — русскоговорящее сообщество
ПОдскажите, а есть ли способ запустить джобу только после того как все поды  будут запущены?
источник

GG

George Gaál in Kubernetes — русскоговорящее сообщество
вообще такое поверх очереди типа кафки реализуют
источник

PK

Pavel Kolobaev in Kubernetes — русскоговорящее сообщество
Никита Суворов
ПОдскажите, а есть ли способ запустить джобу только после того как все поды  будут запущены?
нет.
но если написать оператора то да
источник

I

Ilya in Kubernetes — русскоговорящее сообщество
George Gaál
вообще такое поверх очереди типа кафки реализуют
ну сам пайплайн, возможно, да, а сервисы в кубернетисе например?
источник

PK

Pavel Kolobaev in Kubernetes — русскоговорящее сообщество
или можно в джобе ждать реди от подов
источник

GG

George Gaál in Kubernetes — русскоговорящее сообщество
Ilya
ну сам пайплайн, возможно, да, а сервисы в кубернетисе например?
без понимания специфики твоего приложения ничего порекомендовать нельзя
источник

GG

George Gaál in Kubernetes — русскоговорящее сообщество
из очевидных проблем - у тебя под может сломаться ) который вот прямо сейчас файл молотит. Ваши действия ?
источник

I

Ilya in Kubernetes — русскоговорящее сообщество
George Gaál
если у тебя пайплайн обработки файла - опять же - внешнее хранилище
просто внешнее хранилище получается каждый под сам себе будет выкачивать файл, как  траффик ресурсы сэкономить если у м еня  не 10г сетвка между нодами и стораджем, я хочу чтобы один раз физически файл перемещался
источник

GG

George Gaál in Kubernetes — русскоговорящее сообщество
объемы данных ?
источник

НС

Никита Суворов... in Kubernetes — русскоговорящее сообщество
Pavel Kolobaev
или можно в джобе ждать реди от подов
хм, да это можно накостылить
источник

GG

George Gaál in Kubernetes — русскоговорящее сообщество
кластер в облаке или онпремис ?
источник

EP

Eugene Petrovich in Kubernetes — русскоговорящее сообщество
Ilya
Всем привет. Есть вопрос по организации стораджа для кубернетиса. Допустим у меня микросервисная архитектура, по сути каждый сервис занимается некоторым процессингом файлов. Понятно что каждый сервис может качать из хранилища файл обрабатывать его и удалять. Но хочется чтобы не было дублирования трафика при условии нахождения сервисов на одной ноде и получении одного и того же файла. Т.е. чтобы было какое-то локальное кэширование, если какой-либо сервис на данной ноде уже скачал файл, то мы повторно сторадж не спрашиваем, а отдаем локально. Как можно добиться такого эффекта? Куда вообще погуглить можно, что-то ничего не найду...
Настраиваешь S3 и очередь с ACK (кафка не подойдёт), при помещении объекта в s3 для последующей обработки необходимо положить сообщение в очередь на обработку. Микросервис увидит задачу в очереди и возьмёт файл на обработку, по успешному окончанию делает ACK для сообщения… Воркеров-разгребателей может быть много, всем нужен общий сторадж… каждому воркеру свой сторадж не нужен
источник

GG

George Gaál in Kubernetes — русскоговорящее сообщество
Eugene Petrovich
Настраиваешь S3 и очередь с ACK (кафка не подойдёт), при помещении объекта в s3 для последующей обработки необходимо положить сообщение в очередь на обработку. Микросервис увидит задачу в очереди и возьмёт файл на обработку, по успешному окончанию делает ACK для сообщения… Воркеров-разгребателей может быть много, всем нужен общий сторадж… каждому воркеру свой сторадж не нужен
идеально
источник

GG

George Gaál in Kubernetes — русскоговорящее сообщество
вообще можно на серверлесс переписать )
источник

EP

Eugene Petrovich in Kubernetes — русскоговорящее сообщество
таки да, или на batch jobs переложить
источник

k

kvaps in Kubernetes — русскоговорящее сообщество
Sergey Monakhov
они туда хелм-оператор засунут?
Нет, там будет gitops-engine такой же как и в ArgoCD
источник