Спикеры MetalLB не могут связаться друг с другом
«memberlist: Failed fallback TCP ping: timeout» и «partial join ... Failed to join ...:7946: connect: no route to host» в журнале MetalLB: спикеры на узлах не видят друг друга по порту 7946. Из-за этого адреса сервисов могут объявляться с нескольких узлов или переезжать медленно.
Что это значит
Спикеры MetalLB, по одному на узел, объединяются в группу по протоколу memberlist, чтобы знать, какие узлы живы, и быстро переносить внешние адреса сервисов с упавшего узла. Для этого им нужен порт 7946 по TCP и UDP между всеми узлами. Если связи нет, в журнале появляются Failed fallback TCP ping и partial join.
Без связи спикеры хуже понимают, кто жив: адрес может объявляться не тем узлом или долго не переезжать после падения узла. Часто ошибки идут на выключенные узлы, которые остались в списке кластера.
Как проверить
- Адреса из текста: это живые узлы или выключенные.
- Доступность порта с одного узла на другой:
nc -vz <узел> 7946иnc -vzu <узел> 7946. - Правила межсетевого экрана или групп безопасности между узлами.
Что сделать
- Открыть 7946/tcp и 7946/udp между всеми узлами, где работают спикеры MetalLB.
- Выключенные надолго узлы убрать из кластера или пометить, чтобы на них не запускались спикеры.
Ошибка повторяется?
Запустите Диагностика: за полминуты он покажет состояние базы, брокера, поиска и сервера. С отчётом разберём причину за 30 минут бесплатного созвона.
Написать