Решено с помощью провайдера Traefik REST API . Внешний компонент, который выполняет одноразовые задачи, может обнаруживать внутренний IP-адрес задачи и оперативно обновлять конфигурацию Traefik по паре traefik.frontend.rule = "Path:/user/1234"
и внутренним значениям IP:port
задачи в backends
разделе
Он должен GET
сначала настройте конфигурацию Traefik с /api/providers/rest
конечной точки, удалите или добавьте соответствующую деталь (если задача была остановлена или запущена) и обновите конфигурацию Traefik методом PUT
до той же конечной точки.
{
"backends": {
"backend-serv1": {
"servers": {
"server-service-serv-test1-serv-test-4ca02d28c79b": {
"url": "http://172.16.0.5:32793"
}
}
},
"backend-serv2": {
"servers": {
"server-service-serv-test2-serv-test-279c0ba1959b": {
"url": "http://172.16.0.5:32792"
}
}
}
},
"frontends": {
"frontend-serv1": {
"entryPoints": [
"http"
],
"backend": "backend-serv1",
"routes": {
"route-frontend-serv1": {
"rule": "Path:/user/1234"
}
}
},
"frontend-serv2": {
"entryPoints": [
"http"
],
"backend": "backend-serv2",
"routes": {
"route-frontend-serv2": {
"rule": "Path:/user/5678"
}
}
}
}
}