одной ноде повесить разные поды с hostNetwork: true и одинаковым портом?
Например на ноде есть пара бережно установленных IP 1.1.1.1, 1.1.1.2
Pod1:
hostNetwork: true
ports:
- containerPort: 80
hostPort: 80
hostIP: 1.1.1.1
protocol: TCP
Pod2:
hostNetwork: true
ports:
- containerPort: 80
hostPort: 80
hostIP: 1.1.1.2
protocol: TCP
Никак
hostPort - это nat правило на хосте, hostNetowk: true это ты пробросил все интерфейсы с хоста в контейнер. Эти две вещи не связаны
связаны не связаны, а заставить работать шедулер как надо позволяют…
ну просто ты хотел избавится от nat, а не избавился
по идее тебе надо по дргому сделать. Убрать hostPort вообще А прилоденькам в поде сказать биндится на разные ип адреса
DNAT правила в фаерволе при такой комбинации не появляется. Сервис внутри пода биндится на нужный порт. Или есть еще подводные камни? поясни
они у меня не зашедулятся на одну ноду, если у них будет одинаковый containerPort если я правильно помню.
хотя … мм. а если вообще их не указывать… )
я предлагаю тебе вообще убрать ports. И да с одним containerPort шедулер ничего не запретит двум разным подам прилетать на одну ноду. А вот с одним hostPort да. hostPort я и предлагал убрать и hostIP. Да и ваще можно весь ports выпилить (оно не надо с hostNetwork: true)
Ну те утверждается что добавление hostPort в спеку пода при hostNetowork true менят поведение шедулера?
Ну тогда нельзя будет в svc по именам портов в поде обращаться) Да и не нативно будет понятно что конкретно под "планирует" занять
Вообще я точно знаю что при hostNetwork: true у тебя обязательно containerPort и hostPort должны совпадать
да, я как раз сейчас пробую такой вариант. Кажется это должно взлететь.
hostPort точно меняет поведение шедулера. Оно появилось еще до affinity, и так можно было например разносить поды по разным нодам
Блин, hostPort расчитан на hostNetwork: false, он тупо nat правило делает же. А с hostNetwork: true мб есть защита от дурака он не будет делать nat
Обсуждают сегодня