Два дня назад наша DevOps-команда задавала вопрос для мидлов. Сегодня — правильный ответ 👇 «На самом деле вариантов может быть несколько. Мы предлагаем следующий.
Нужно изменить существующий Service db-ro, не трогая Pod приложения. Удалить у Service selector, чтобы Endpoints перестали управляться автоматически контроллером. Пересоздать Service как headless (clusterIP: None), чтобы трафик не проходил через kube-proxy и DNAT. В этом случае имя db-ro будет резолвиться напрямую во внешний IP реплики. Обновить или создать Endpoints (или EndpointSlice), указав в нём IP внешней read-реплики и порт 3306.
В результате адрес db-ro останется прежним, но приложение будет подключаться к новой read-реплики без перезапуска». #экспертиза@altenar_b2b #коднаплакал@altenar_b2b