Is it possible to use rolling-updates (update-order: start-first) when the Docker Swarm internal load-balancer is disabled for a service (DNS Round Robin (DNSRR) mode)?
My service configuration looks like this:
api:
image: "..."
networks:
- api-network
ports:
- target: 9292
published: 9292
protocol: tcp
mode: host
deploy:
mode: global
endpoint_mode: dnsrr
update_config:
order: start-first
With this configuration I get the error host-mode port already in use on 1 node" update start-first when trying to deploy a new version. Using stop-first is not really a good solution because requests will fail while the new container is starting up.
My motivation to disable the internal load-balancer is, that I want to detect faulty servers in the reverse-proxy (nginx) and disable them. But together with the Docker Swarm load-balancer I'm worried that if for example nginx sends a request to server A, where the Swarm load-balancer will forward the request to a faulty server B, nginx would mark server A as faulty while actually server A is fine.