тем, что nginx кеширует на момент запуска dns-адреса. Из-за этого, если у вас меняется айпишник за доменом, то апстрим перестает работать. Это решается тем, что апстрим вводится через переменную и добавляется директива resolver.
Итак, я запускаю тестовый под c nginx и подсовываю такую конфигурацию:
server {
listen 80;
location /test {
resolver 10.100.0.10 valid=10s ipv6=off;
set $backend_upstream "http://exapmle.com";
proxy_pass $backend_upstream;
}
location / {
add_header Content-Type text/plain;
return 200 'BIBA';
}
}
При curl -L localhost/test из пода по идее должен отработать резолвер nginx'a. Но как это проверить?
Я смотрю внутри пода появятся ли новые udp-cоединения к coredns кубовском, но там ничего нет
watch -n0.1 -d 'netstat -tulpn | grep LISTEN'
если это вопрос про кубер, то не юзай такую херню и рули на уровнях ингреса и гейтвея
Это вопрос скорей про nginx
Да, понятно, но уже такое есть дерьмо и надо с ним разбираться
проще перетащить на ingress
Оно уже все есть в отдельном поде и так. Ничего перетаскивать не надо
netstat -tulpn показывает слушащие соединения. Что ты там собираешься увидеть?
Ну, не надо пользоваться инструментом который предоставляет технология, так не надо. дело ваше. Хотите костылить - штош Чтобы увидеть запросы в корднс, вангую, надо посмотреть в под корднса
Значит не идет в корднс. Или дебаг не включен
Дебаг не включен
Можно ли посмотреть исходящие соединения от nginx к резолверу?
tcpdump подрубить в теории можнго, да
Ну я потыкал какие-то полурандомные команды из интернета и видно, что идет запрос к резолверу, указанному мной в конфиге nginx(поменял 169.254.169.253) Осталось систематизировать это все
Или сделать по человечкски без костылей
Обсуждают сегодня