Docker Swarm Container не может разрешить адрес контейнера в другом узле - PullRequest
0 голосов
/ 26 октября 2018

Я инициировал рой на своем Vm и присоединился к другому Vm к своему рому в качестве менеджера. Затем я перекрываю сеть docker network create --attachable --driver overlay my-net.

Затем я запустил развертывание док-стека для развертывания моих сервисов. Однако, когда я исполняю в один контейнер и пытаюсь nslookup контейнер с другого узла. например, nslookup <container_name>

Я получил:

Server:         127.0.0.11
Address:        127.0.0.11#53

** server can't find <container_name>: NXDOMAIN

nslookup для контейнеров в том же узле работает, хотя.

Я предполагаю, что мой DNS не работает, когда дело доходит до разрешения адреса с другого узла, и мне интересно, почему.

Дополнительная информация:

netstat -l для обоих узлов:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 *:ssh                   *:*                     LISTEN
tcp6       0      0 [::]:2377               [::]:*                  LISTEN
tcp6       0      0 [::]:7946               [::]:*                  LISTEN
tcp6       0      0 [::]:30283              [::]:*                  LISTEN
tcp6       0      0 [::]:30284              [::]:*                  LISTEN
tcp6       0      0 [::]:30285              [::]:*                  LISTEN
tcp6       0      0 [::]:30289              [::]:*                  LISTEN
tcp6       0      0 [::]:30290              [::]:*                  LISTEN
tcp6       0      0 [::]:30291              [::]:*                  LISTEN
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN
udp        0      0 *:bootpc                *:*
udp        0      0 *:4789                  *:*
udp6     768      0 [::]:7946               [::]:*

UFW статус показывает неактивным.

проверка докера (частичный результат) Может ли быть так, что мой peer IP 10.0.0.5 неверен?

"Peers": [
            {
                "Name": "c7feabf505ba",
                "IP": "10.0.0.5"
            },
            {
                "Name": "073e551404e8",
                "IP": "137.116.149.79"
            }
        ]

Информационный узел докера 1:

Containers: 2
 Running: 2
 Paused: 0
 Stopped: 0
Images: 15
Server Version: 18.06.1-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: active
 NodeID: ro2p9n7o33darkuylentq1nx0
 Is Manager: true
 ClusterID: 01q4hei9hzibq3x8m36pzqo8c
 Managers: 2
 Nodes: 2
 Orchestration:
  Task History Retention Limit: 5
 Raft:
  Snapshot Interval: 10000
  Number of Old Snapshots to Retain: 0
  Heartbeat Tick: 1
  Election Tick: 10
 Dispatcher:
  Heartbeat Period: 5 seconds
 CA Configuration:
  Expiry Duration: 3 months
  Force Rotate: 0
 Autolock Managers: false
 Root Rotation In Progress: false
 Node Address: 168.63.239.163
 Manager Addresses:
  137.116.149.79:2377
  168.63.239.163:2377
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 468a545b9edcd5932818eb9de8e72413e616e86e
runc version: 69663f0bd4b60df09991c08812a60108003fa340
init version: fec3683
Security Options:
 apparmor
 seccomp
  Profile: default
Kernel Version: 4.15.0-1025-azure
Operating System: Ubuntu 16.04.5 LTS
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 3.853GiB
Name: blockcord-staging2
ID: UT5F:4ZFW:4PRT:LGFS:JIV4:3YAD:DK5I:BIYL:FU6P:ZFEB:3OD3:U5EX
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

Информационный узел докера 2:

Containers: 1
 Running: 1
 Paused: 0
 Stopped: 0
Images: 15
Server Version: 18.06.0-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: active
 NodeID: osmwr2fcrcg8mazopkanf4gr7
 Is Manager: true
 ClusterID: 01q4hei9hzibq3x8m36pzqo8c
 Managers: 2
 Nodes: 2
 Orchestration:
  Task History Retention Limit: 5
 Raft:
  Snapshot Interval: 10000
  Number of Old Snapshots to Retain: 0
  Heartbeat Tick: 1
  Election Tick: 10
 Dispatcher:
  Heartbeat Period: 5 seconds
 CA Configuration:
  Expiry Duration: 3 months
  Force Rotate: 0
 Autolock Managers: false
 Root Rotation In Progress: false
 Node Address: 10.0.1.6
 Manager Addresses:
  137.116.149.79:2377
  168.63.239.163:2377
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: d64c661f1d51c48782c9cec8fda7604785f93587
runc version: 69663f0bd4b60df09991c08812a60108003fa340
init version: fec3683
Security Options:
 apparmor
 seccomp
  Profile: default
Kernel Version: 4.15.0-1025-azure
Operating System: Ubuntu 16.04.4 LTS
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 1.885GiB
Name: doc2us-staging
ID: JG7Q:HZBH:7WIF:22GC:PZQQ:EXJC:ZDPT:C2SA:TDRM:XJ4M:KKX4:OAEI
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

1 Ответ

0 голосов
/ 29 октября 2018

Причина в том, что когда я использую команду docker swarm join, docker автоматически присоединяется, используя мой внутренний ip.

Я должен сделать это просто:

Docker Swarm Join - Token ...... --advertise-addr.

Кредиты https://github.com/docker/swarmkit/issues/1429#issuecomment-329325410

...