moby / moby/swarmkit

Ports not published to the service name ip when using a network plugin (weave)

Open
#2,913 1 comment 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
3.7k
Forks
676
Avg merge
4d 9h
Merged PRs (30d)
6

Description

When I deploy this v3.7 docker-compose.yml stack onto a two node docker 19.0.3.4 swarm cluster using the overlay network it works as expected -- service names can be used on the network and ports are accessible.
https://gist.github.com/jamshid/bf5dcdb0ae1b505a636b33ca5ebfba4b
Unfortunately it doesn't work when using the "weave" network plugin:

NETWORK_DRIVER=weaveworks/net-plugin:latest_release docker stack deploy -c ./docker-compose.yml voteapp

docker run -ti --network voteapp_voteapp centos curl --head http://result-app:80 http://voting-app:80

I filed https://github.com/weaveworks/weave/issues/3734 but they think it is probably a change or bug with docker or swarm network plugins. In the similar issue https://github.com/weaveworks/weave/issues/3382 some people claimed downgrading to 18.03 fixed the problem, so maybe something broke with network plugins 18.06?

My example yml is based on the common voting app sample https://github.com/dockersamples/example-voting-app and should be easy to deploy then test with the curls in my gist.

Is there any other network plugin I can use besides "overlay" or "weave" to try to narrow down the problem? Is there anything else I could provide to help?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the referenced docker-compose.yml and gist, then reproduce the stack with the overlay and weave network commands shown in the issue. Compare the behavior with the linked Weave reports and Docker or Swarm network-plugin changes. Done means the port-publication failure is explained and a concrete fix or limitation is established.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, go
Domain
distributed-systems, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.