1 votes

adresse de liaison du conteneur docker swarm autre que 0.0.0.0

J'ai une configuration d'essaim docker multi-nœuds avec les interfaces suivantes :

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:8d:c0:4d brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic eth0
       valid_lft 47333sec preferred_lft 47333sec
    inet6 fe80::a00:27ff:fe8d:c04d/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:fe:3f:4d brd ff:ff:ff:ff:ff:ff
    inet 10.0.1.2/24 brd 10.0.1.255 scope global eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fefe:3f4d/64 scope link 
       valid_lft forever preferred_lft forever
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:94:ee:64:8f brd ff:ff:ff:ff:ff:ff
    inet 10.0.1.2/24 brd 10.0.1.255 scope global docker0
       valid_lft forever preferred_lft forever
9: docker_gwbridge: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:12:4b:f2:fa brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.1/16 brd 172.18.255.255 scope global docker_gwbridge
       valid_lft forever preferred_lft forever
    inet6 fe80::42:12ff:fe4b:f2fa/64 scope link 
       valid_lft forever preferred_lft forever

Lors du démarrage de la pile de conteneurs la plus simple docker swarm deploy -c simple.yml simple

version: "3.7"
services:
  whoami:
    image: traefik/whoami
    ports:
      - 80:80

Le conteneur est placé et le service est lié à 0.0.0.0 . Ce n'est pas vraiment l'idéal. Le mieux serait que le conteneur se lie à l'objet eth1=10.0.1.2/24 interface. Idéalement, il faudrait aussi lo - mais ce serait juste la cerise sur le gâteau.

Ce que j'ai essayé, c'est de démarrer les instances docker avec leurs IP respectives depuis le réseau.

--ip ip IP par défaut lors de la liaison des ports de conteneurs (par défaut 0.0.0.0)

Ainsi, sur la base les docs par exemple : dockerd --ip 10.0.1.2 . Malheureusement, cela ne semble pas changer grand-chose.

J'utilise Docker version 20.10.4, build d3cb89e .

Des conseils sur ce que je pourrais manquer ?

2voto

urfin78 Points 133

Actuellement, il n'est pas possible de lier un service swarm à une IP spécifique. Voir ce problème vieux de plus de quatre ans : https://github.com/moby/moby/issues/26696

Vous pouvez initier votre essaim avec la commande --advertise-addr --data-path-addr y --listen-addr liée à votre eth1 pour limiter une partie du trafic interne de l'essaim à cette interface, mais cela ne résoudra pas vraiment le problème.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X