Одним из способов достижения этого является использование провайдера файлов и создание статической настройки, указывающей на узлы вашего сервера API; как то так (не проверено)
[file]
[backends]
[backends.backend1]
[backends.backend1.servers]
[backends.backend1.servers.server1]
url = "http://apiserver1:80"
weight = 1
[backends.backend1.servers.server2]
url = "http://apiserver2:80"
weight = 1
[backends.backend1.servers.server3]
url = "http://apiserver3:80"
weight = 1
[frontends]
[frontends.frontend1]
entryPoints = ["http"]
backend = "backend1"
passHostHeader = true
[frontends.frontend1.routes]
[frontends.frontend1.routes.route1]
rule = "Host:apiserver"
(Это предполагает простую настройку только по протоколу HTTP; для HTTPS потребуется дополнительная настройка.)
Когда Traefik предоставляется этот фрагмент конфигурации (и все остальное, что вам нужно сделать через файл TOML или параметры CLI), он будет округлять запросы с apiserver заголовком хоста на трех узлах. .
Другим, по крайней мере, потенциальным вариантом является создание объекта Service, который захватывает узлы вашего сервера API и другой объект Ingress, ссылающийся на эту службу, и сопоставляет желаемый путь URL-адреса и хост с вашим сервером API. Это даст вам больше гибкости, поскольку Служба должна автоматически приспосабливаться к изменениям на вашем сервере API, что может быть интересно, когда в игру вступают такие вещи, как непрерывные обновления. Однако одним из отягчающих обстоятельств может быть то, что Traefik необходимо обратиться к серверу API для обработки Ingresses и Services (и в этом случае конечных точек), чего не может быть, если сервер API недоступен. Возможно, вам понадобится какая-то настройка HA или вы захотите выдержать определенную недоступность. (FWIW, Traefik должен самостоятельно восстанавливаться после временных простоев.)
Если вы хотите запустить Traefik в кластере или вне кластера, решать только вам. Первый, безусловно, проще в настройке, если вы хотите обрабатывать объекты API, так как вам не нужно передавать параметры конфигурации сервера API, хотя те же ограничения в отношении подключения к серверу API применяются, если вы хотите пойти по маршруту Ingress / Service. С подходом провайдера файлов вам не нужно беспокоиться об этом - вполне возможно запустить Traefik внутри Kubernetes без использования провайдера Kubernetes.