Всем привет!
В статье описан опыт Monzo по управлению сетевым трафиком в средах контейнерной оркестрации. На очень больших масштабах.
Ребята проделали колоссальную работу, которую можно разделить на несколько основных этапов:
🍭 Выбор сервиса для «пилотирования». Им стал
service.ledger, который взаимодействует с множеством других🍭 Понимание того, с кем
service.ledger общается. Для этого команда написала собственный инструмент – rpcmap, который анализирует Go-код и пытается найти возможные точки взаимодействия. Работало не очень, но в качестве «первых шагов» - вполне🍭 Подготовка Native Network Policy, определение подходов к labeling. Политика хранилась вместе с конфигурацией
ledger и, если необходимо добавить новый «приемник», то делался соответствующий MR🍭 Трудности, порождаемые таким подходом. Отсутствие тестирование, нюансы с roll back и т.д. Поиск нового решения, которым стал Calico
🍭 Создание сетевых политик Calico, обладающих большим
order для журналирования действий Network Policy для поиска ошибок. Дада, Вам не показалось 😊 Анализ Network Policy при помощи другой Network Policy🍭 Очередное переосмысление labeling с учетом опыта, полученного на предыдущих шагах
И многое-многое-многое! Читается на одном дыхании, рекомендуем! 😊