Назад | Перейти на главную страницу

Как я могу иметь несколько IP-адресов на узле Kubernetes, а затем передавать NAT для определенной службы / модуля на определенный IP-адрес?

У меня есть узел kubernetes, который настроен с несколькими IP-адресами (это, оказывается, голый узел, а оборудование имеет несколько сетевых адаптеров, одному из сетевых адаптеров назначено несколько IP-адресов, но это может быть узел виртуальной машины с несколькими виртуальные адаптеры или узел виртуальной машины с несколькими IP-адресами, назначенными одному адаптеру - важно, чтобы у узла было несколько IP-адресов).

Когда kubernetes выполняет исходный NAT для IP-коммуникаций, исходящих от конкретной службы, работающей на этом узле, он всегда SNAT с первого IP-адреса на первом адаптере в системе (то есть все сообщения от любой службы кажутся исходящими с первого IP-адреса, подключенного к первый адаптер в системе).

Однако я хотел бы, чтобы конкретная служба (или модуль, если необходимо) могла связываться с внешним миром с одного из других IP-адресов. то есть я хотел бы указать для каждой службы, какой из IP-адресов, назначенных узлу, обслуживается по протоколу SNAT / с которого осуществляется связь.

На всякий случай я получаю ответ: «вам не нужно этого делать» ... Конкретная причина этой проблемы заключается в том, что я получаю доступ к службе, которая имеет ограничение скорости для каждого IP-адреса, и мне нужен доступ из нескольких IP-адреса для обхода ограничения скорости. Но эта проблема в равной степени применима к тому, что служба, работающая в вашем кластере кубернетов, обращается к внешним службам, которые ограничены, например, IP-адресом.

Есть одно известное мне существующее решение вашей проблемы, которое в настоящее время все еще находится на стадии альфа-тестирования и реализовано как Custom Resource Defitnion (CRD). Пожалуйста, обратитесь к kube-static-egress-ip проект на github.