Docker Enterprise fresh install, port 7946 already in use

413 views
Skip to first unread message

Michalis

unread,
Aug 17, 2020, 11:34:31 AM8/17/20
to metallb-users
Hi Team
i have a docker enterprise install on centos, all default configuration (brand new install). When I install metallb using the manifests provided I get the following error on the speaker pod: 

{"caller":"main.go:202","component":"MemberList","msg":"memberlist.go:145: [DEBUG] memberlist: Got bind error: Failed to start TCP listener on \"172.16.1.180\" port 7946: listen tcp 172.16.1.180:7946: bind: address already in use","ts":"2020-08-17T15:27:54.078283276Z"}


It seems that the default dockerd process is already running on 7946. Am I doing something wrong? How do I configure the metallb to run on a different port? 
The commands I used to install were: 

 kubectl create secret generic -n metallb-system memberlist --from-literal=secretkey="$(openssl rand -base64 128)"
 kubectl get pods -A

Thanks, 
Michalis


Rodrigo Campos

unread,
Aug 17, 2020, 11:44:33 AM8/17/20
to Michalis, metallb-users
On Mon, Aug 17, 2020 at 5:34 PM Michalis <michali...@gmail.com> wrote:
>
> Hi Team
> i have a docker enterprise install on centos, all default configuration (brand new install). When I install metallb using the manifests provided I get the following error on the speaker pod:
>
> {"caller":"main.go:202","component":"MemberList","msg":"memberlist.go:145: [DEBUG] memberlist: Got bind error: Failed to start TCP listener on \"172.16.1.180\" port 7946: listen tcp 172.16.1.180:7946: bind: address already in use","ts":"2020-08-17T15:27:54.078283276Z"}
>
>
> It seems that the default dockerd process is already running on 7946. Am I doing something wrong? How do I configure the metallb to run on a different port?

I think your docker installation shouldn't be using that port at all,
as it shouldn't need to communicate with other docker instances in the
cluster (that is handled by Kubernetes). Changing that seems like the
proper fix, IMHO, although I haven't used docker enterprise and I
don't know if it imposes something like this (seems unlikely, IMHO).

You can workaround that in MetalLB, though. You can use an unreleased
MetalLB version and configure the port since this commit:
https://github.com/metallb/metallb/commit/e3b0abcde2693e1ffa071563e5800f83e5f539bc.
To do that, you can use the v0.9 tag on dockerhub, for example. But
the version will be changed when MetalLB repo changes, etc. and will
probably create more issues than it solves.

But I strongly recommend to look into why docker is listening on that
port and see how to configure to stop doing it (you don't need docker
swarm, etc. for Kubernetes)

If you find what you needed to change to docker, please share to the
list so others benefit too


Best,
Rodrigo

Michalis

unread,
Aug 17, 2020, 12:19:16 PM8/17/20
to Rodrigo Campos, metallb-users
Reading this documentation: 
https://www.docker.com/blog/swarm-orchestration-in-docker-enterprise-edition/

It does seem that it specifically provides two types of orchestration, swarm and kubernetes, and these work simultaneously so there is no way to disable the port being used. 

Rodrigo Campos

unread,
Aug 20, 2020, 6:02:53 AM8/20/20
to Michalis, metallb-users
On Mon, Aug 17, 2020 at 6:19 PM Michalis <michali...@gmail.com> wrote:
>
> Reading this documentation:
> https://www.docker.com/blog/swarm-orchestration-in-docker-enterprise-edition/
>
> It does seem that it specifically provides two types of orchestration, swarm and kubernetes, and these work simultaneously so there is no way to disable the port being used.

That seems to be using docker on top of kubernetes or something like
that, not just a daemon without any network connection to others. If
that can't be disabled (grr), you can move the port as I explained (or
use docker CE :))
Reply all
Reply to author
Forward
0 new messages