Do docker daemon version of swarm nodes have to be exactly the same?

Steps to reproduce :

  1. install Docker 18.06.0-ce and Docker 17.06.1-ce
  2. let 18.06 one be swarm manager
  3. add 17.06 one be swarm worker
  4. create a service using ingress network to expose port (using docker-compose file)
  5. Get the “is the cluster running the same docker engine version?” and ingress network doesn’t work

Even though I changed the docker api version, it still not working.

Just wonder why docker swarm has no back-compatibility, but docker daemon version of swarm nodes have to be exactly the same instead.
It’s sort of inconvenient.