Прервано соединение 3389 с дБ: (истекло время ожидания при чтении пакетов связи) при вызове mariaDB из Docker сервисов Swarm - PullRequest
0 голосов
/ 21 апреля 2020

В настоящее время на нашем сервере работает несколько виртуальных машин с VMWare. Три из этих виртуальных машин работают под управлением Docker Swarm и имеют несколько служб / контейнеров, которые подключаются к MariaDB. Эта база данных установлена ​​на другой виртуальной машине, а не в контейнере docker.

В журналах базы данных мы находим следующие предупреждения:

3389 [Warning] Aborted connection 3389 to db: '<db>' user: '<user>' host: '<ip>' (Got timeout reading communication packets)

Мы можем видеть это, когда сервис от узла 1 связывается с базой данных, база данных имеет 10 соединений с IP-адресом узла 1. Когда затем служба из узла 2 связывается с базой данных, все соединения с узлом 1 немедленно сбрасываются.

Наши службы используют Spring Boot 2. Мы запускаем Docker версию 18.09.7 в Ubuntu 18.04.2.

Что мы пробовали:

  • с использованием «extra_hosts» в нашем docker -создать файл для связи с базой данных через DNS-имя, а не IP-адрес. Это ничего не изменило.
  • с использованием "endpoint_mode: dnsrr" в нашем файле compose. Это не позволило нам открыть порты в нашем контейнере, что нам абсолютно необходимо.
  • изменив настройку sysctl на каждом из хостов, чтобы увеличить доступные сокеты и ускорить повторное использование этих сокетов. Это ничего не изменило.

Docker создать файл (на самом деле он содержит гораздо больше сервисов, похожих на этот, у всех одинаковая проблема с базой данных):

version: "3.7"
services:

        ovinto-api:
                image: <private_registry>/example-api:example-dev
                hostname: example-api
                ports:
                        - 8203:8090
                deploy:
                        resources:
                                limits:
                                        memory: 768M
                                reservations:
                                        memory: 256M
                        replicas: 1
                        update_config:
                                order: start-first
                networks:
                        - example-network
                extra_hosts:
                        - "example-mongodb-dev:<ip>"
                        - "example-mysql-dev:<ip>"
                        - "example-old-dev:<ip>"
                        - "example-rabbitmq-dev:<ip>"
                        - "example-redis-dev:<ip>"
                        - "example-swarm-dev:<ip>"
                        - "example-swarm-dev:<ip>"
                        - "example-swarm-dev:<ip>"


networks:
        example-api:
                driver: overlay
        example-network:
                driver: overlay

Кто-нибудь когда-либо имел эту проблему раньше? Или у вас есть представление о том, что может дать нам этот вопрос? Любой совет приветствуется

...