Я использую gRPC с Python в качестве клиента/сервера внутри стручков kubernetes... Я хотел бы иметь возможность запускать несколько модулей одного типа (серверы gRPC) и разрешать клиенту подключаться к ним (произвольно).
Я отправил 10 модулей сервера и настроил "службу" для их таргетинга. Затем в клиенте я подключился к DNS-имени службы - это означает, что kubernetes должен выполнить балансировку нагрузки и направить меня к произвольному серверному модулю. В действительности, клиент вызывает функции gRPC (что работает хорошо), но когда я просматриваю логи, я вижу, что все вызовы идут на один и тот же серверный модуль.
Я предполагаю, что клиент выполняет какое-то DNS-кэширование, которое приводит к тому, что все вызовы отправляются на один и тот же сервер. Это тот случай? Есть ли в любом случае отключить его и настроить тот же клиент заглушки, чтобы сделать "новый" вызов и получать новый IP по DNS с каждым вызовом?
Я знаю о накладных расходах, которые я могу вызвать, если он будет каждый раз запрашивать DNS-сервер, но распределение нагрузки для меня сейчас гораздо важнее.