Как работает Kubernetes external IP multi-pod routing?
У меня есть кластер Kubernetes с голым металлом с контроллером входа haproxy (набор демонов) на внешнем ip. Можно ли ограничить kube-proxy маршрутизацией к локальному входному модулю haproxy?
Чтобы быть более конкретным, у меня есть 2 модуля контроллера входа haproxy, и я использую для них один внешний IP-адрес. Насколько я понимаю, kube-proxy будет маршрутизировать пакеты в циклическом режиме. Я не нашел способа ограничить это конкретное поведение.
1 ответ
Задавать externalTrafficPolicy: Local
в службе NodePort.
Это приведет к тому, что трафик, идущий на узел X, будет идти только в модуль на узле X. Если на узле X нет модуля, трафик будет отброшен (но это не должно быть проблемой, поскольку вы используете DaemonSet).
Еще одно преимущество состоит в том, что это сохраняет истинный IP-адрес источника, который видит haproxy. БезexternalTrafficPolicy
, возможно, что haproxy видит исходный IP-адрес другого узла вместо исходного, поскольку узлы могут проксировать трафик.
Больше информации здесь