#kubernetes #grpc #kubectl #microk8s
Вопрос:
У меня есть несколько модулей, в которых запущены некоторые службы (например, служба аутентификации). Он отправляет запросы в службу поддержки клиентов через grpc. При перезапуске клиентской службы IP — адрес модуля изменяется. А затем служба аутентификации получает нового IP — клиента службы. Однако повторного подключения не происходит. Как я могу снова подключиться?
Комментарии:
1.
k8s
службы буквально предназначены для отслеживания модулей, изменяющих IP-адреса. Поэтому при обращении к вашим службам используйте DNS-имя, а не IP-адрес.
Ответ №1:
Как упоминал @colm.anseo, сервисы kubernetes предназначены для отслеживания модулей, изменяющих IP-адреса. Поэтому вместо IP-адресов используйте DNS-имя при обращении к службам. gRPC автоматически подключится к новым адресам при обновлении DNS, и DNS периодически обновляется (при ошибках подключения; не чаще, чем каждые 30 секунд, и с экспоненциальным возвратом, если в данный момент нет подключенных адресов). Каждая попытка повторного подключения подразумевает разрешение DNS-адреса, хотя он может не обнаруживать новый адрес сразу из-за TTL (времени действия) старой записи DNS. Ссылаться наDNS для служб и модулей для получения информации.
Ответ №2:
Я бы рекомендовал вам прочитать основы Kubernetes, чтобы ознакомиться с некоторыми основными объектами, это действительно помогает получить общую картину.
В связи с вашей проблемой я бы прочитал об услугах: https://kubernetes.io/docs/tutorials/kubernetes-basics/expose/expose-intro/
Скорее всего, вы захотите воспользоваться Услугой.