Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing edges when using Docker's IPAM driver #1563

Closed
idcrosby opened this issue Jun 8, 2016 · 9 comments
Closed

Missing edges when using Docker's IPAM driver #1563

idcrosby opened this issue Jun 8, 2016 · 9 comments
Assignees
Labels
bug Broken end user or developer functionality; not working as the developers intended it
Milestone

Comments

@idcrosby
Copy link

idcrosby commented Jun 8, 2016

Scope is not displaying some connections while we are running continuous load through our application.

Specifically, the front-end service is only shown as having one outbound connection, to the catalogue service. In fact it is communicating with the login, orders, accounts, and carts services as well. I have verified this via our log files.

Please ping me if you need any additional information.

weave_report_and_svg.zip

@idcrosby
Copy link
Author

idcrosby commented Jun 8, 2016

It seems like Scope is not identifying the full weave IP range as local.

For instance, in the following report: report_fons.json.gz

We have a connection from 10.0.2.13:35096 to 10.0.2.8:80 (from frontend to accounts) which is not reflected in the UI

screen shot 2016-06-08 at 18 51 14

The local networks don't contain that range

screen shot 2016-06-08 at 18 53 46

I'm using weave net 1.5.1 and here's the report from one of the nodes:
weave-report.json.gz

weave's IPAM range is reported as:

    "IPAM": {                                                                                   
        "Paxos": null,                                                                          
        "Range": "10.32.0.0-10.47.255.255",                                                     
        "RangeNumIPs": 1048576,                                                                 
        "DefaultSubnet": "10.32.0.0/12",                                                        
        "Entries": [                                                                            
            {                                                                                   
                "Token": "10.32.0.0",                                                           
                "Size": 1048576,                                                                
                "Peer": "fa:7e:27:1f:dd:08",                                                    
                "Nickname": "swarm-master",                                                     
                "IsKnownPeer": true,                                                            
                "Version": 1                                                                    
            }                                                                                   
        ],                                                                                      
        "PendingClaims": null,                                                                  
        "PendingAllocates": null                                                                
    },

@2opremio
Copy link
Contributor

2opremio commented Jun 9, 2016

Related: #1162

@2opremio
Copy link
Contributor

2opremio commented Jun 9, 2016

The report does contain overlay local networks which are taken into account for creating edges:

screen shot 2016-06-09 at 12 23 16 pm

(the report provides an identical network for all nodes)

However ... isn't 10.0.2.8 out of 10.32.0.0/12? What am I missing?

@squaremo
Copy link

squaremo commented Jun 9, 2016

However ... isn't 10.0.2.8 out of 10.32.0.0/12? What am I missing?

The IP addresses for the containers are supplied by Docker, because they are each declared part of a docker network, and docker wants to allocate the addresses on its networks.

Weave's IPAM cannot be used, because the plugin doesn't support more than one docker network in that mode.

@2opremio 2opremio changed the title Scope not showing correct connections Missing edges when using Docker's IPAM driver Jun 9, 2016
@2opremio
Copy link
Contributor

2opremio commented Jun 9, 2016

The hacky workaround was to enforce IPAM subnets (10.32.0.0/13 and 10.40.0.0/13) overlapping the default Weave IPAM net.

The real solution is for Scope to get networking information from Docker and add local networks to the Overlay topology.

@2opremio 2opremio added the bug Broken end user or developer functionality; not working as the developers intended it label Jun 9, 2016
@2opremio 2opremio added this to the Pre-1.0 milestone Jun 9, 2016
@tomwilkie tomwilkie modified the milestones: 0.16.0, Pre-1.0 Jun 9, 2016
@rade
Copy link
Member

rade commented Jun 9, 2016

Weave's IPAM cannot be used, because the plugin doesn't support more than one docker network in that mode.

nitpick: Weave's IPAM can be used, but one would need to feed subnet info to docker network create to get allocations in different subnets. That is a worse user experience than using Docker's IPAM, so there is no point choosing that path.

(This doesn't alter the substance of this bug)

@2opremio 2opremio self-assigned this Jun 13, 2016
@tomwilkie
Copy link
Contributor

@2opremio was this fixed by #1578?

@2opremio
Copy link
Contributor

No, this requires going through the docker networks to figure out their scope.

@2opremio
Copy link
Contributor

Reopening since it still happens when using global networks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Broken end user or developer functionality; not working as the developers intended it
Projects
None yet
Development

No branches or pull requests

5 participants