Docker Swarm — контейнеры могут пинговать узлы между собой, но не могут обмениваться данными через TCP-порты.

Я настраиваю новый кластер режима Docker Swarm на трех машинах с Linux — все они установлены совершенно заново. На всех трех машинах отключены брандмауэры и модули безопасности (AppArmor), и я могу подтвердить, что они могут обмениваться данными через порты.7946(TCP и UDP) и4789(УДП).

Например, один из стеков, который я привожу:

      ...
  wikijs_db:
    image: postgres:11-alpine
    deploy:
      replicas: 1
    environment:
      POSTGRES_DB: ***
      POSTGRES_PASSWORD: ***
      POSTGRES_USER: ***
      HA_ACTIVE: 1
    restart: unless-stopped
    volumes:
      - db_data:/var/lib/postgresql/data
      - db_assets:/root/assets
  wikijs_wiki:
    image: requarks/wiki:2.5
    deploy:
      replicas: 1
    depends_on:
      - wikijs_db
    environment:
      DB_TYPE: postgres
      DB_HOST: wikijs_db
      DB_PORT: 5432
      DB_USER: ***
      DB_PASS: ***
      DB_NAME: ****
      HA_ACTIVE: 1
    volumes:
      - "/etc/localtime:/etc/localtime:ro"
      - data:/backup/data
      - assets:/root/assets
...

При создании кластера контейнеры распределяются между узлами — и могут взаимодействовать сping, а также разрешить их имена хостов:

      /wiki $ ping wikijs_db
PING wikijs_db (10.0.1.4): 56 data bytes
64 bytes from 10.0.1.4: seq=0 ttl=42 time=0.113 ms
64 bytes from 10.0.1.4: seq=1 ttl=42 time=0.134 ms

Однако контейнеры не могут обмениваться данными через TCP:

      /wiki $ nc -vz wikijs_db 5432


nc: wikijs_db (10.0.1.4:5432): Operation timed out

Это происходит только между узлами в рое.

Я пытался воссоздать рой, переустановить операционные системы, запустить разные контейнеры, а также назначить сети по умолчанию предопределенную подсеть, но все безуспешно. Я также не вижу ошибок в журнале демона Docker ни на одном из узлов.

Буду очень признателен за помощь в решении данного вопроса.

Спасибо!

1 ответ

Решается запускомethtool -K [interface] tx offкак предложено в этой теме: https://stackoverflow.com/questions/66251422/docker-swarm-overlay-network-icmp-works-but-not-anything-else

Другие вопросы по тегам