Как мне перечислить VIP-адреса Docker?

Я могу перечислить все IP-адреса контейнера внутри оверлейной сети Docker, используя:

~# docker network inspect <network_id>

Я пытаюсь устранить неполадку распознавателя в некотором стое роя Docker. Кажется, что разрешение выполняется с неправильным IP-адресом, но я хочу проверить, разрешен ли он в первую очередь для VIP. Я говорю о сети между контейнерами, а не о входной сети.

В своем квесте я нашел этот комментарий к Docker. Что говорит об этом:

С точки зрения отладки, инструмент, который нужно использовать:

  1. ТСРйитр
  2. ipvsadm -> балансировка нагрузки выполняется с помощью ipvs

Но я не могу найти какой ipvsadm варианты, чтобы использовать, чтобы распечатать VIP, используемые в моей сети докера.

1 ответ

Решение

Вы можете найти VIP для службы с проверкой самой службы (я обычно использую jq отформатировать вывод json):

docker service inspect --format '{{json .Endpoint.VirtualIPs}}' ${service_name} \
 | jq .

Чтобы перебрать все ваши сервисы, вы можете сделать небольшой сценарий:

for service in $(docker service ls -q); do
  docker service inspect --format \
     '{{.Spec.Name}}: {{range .Endpoint.VirtualIPs}}{{.Addr}} {{end}}' \
     ${service}
done
Другие вопросы по тегам