Проблемы с подключением Docker (к службам Azure DevOps Services из автономного агента Docker для Linux)

Мне нужен совет по устранению некоторых чрезвычайно болезненных проблем с подключением Docker.

В частности, для репозитория Git Azure DevOps Services я использую автономный (локальный) dockerized Linux CI (настройка в соответствии с https://docs.microsoft.com/en-us/azure/devops/pipelines/agent/docker?view=azure-DevOps#linux), которая уже несколько месяцев работает нормально.

Все это работает в сети компании, и с прошлой недели сетевое соединение моего док-контейнера стало очень нестабильным:

  • В частности, он периодически теряет сетевое подключение, что также видно в журналах агента Azure DevOps, который затем продолжает попытки восстановить подключение.

  • # P5 #
    # P6 #
  • # P7 #
    # P8 #
    # P9 #

Также я вижу заметные различия в производительности сети:

  • Ручное клонирование одного и того же репозитория Git (включая объекты LFS, все с нуля) в экземплярах контейнера (созданных из одного образа) на разных машинах, занимает менее 2 минут на моем портативном компьютере разработчика (подключенном из дома через VPN), тогда как та же операция легко занимает до 20 минут (!) В контейнерах, на которых работают две разные машины Win10 (корпоративная сеть, физически расположенная в офисах, следовательно, нет VPN.
  • Ясно, что речь идет не о самом подключении к сети хоста, поскольку клонирование на одних и тех же хостах Win10 (сеть / офисы компании) вне контейнеров занимает всего 14 секунд!

Следовательно, я подозреваю некоторые проблемы с конфигурацией сети (например, что-то с адаптером Hyper-V vEthernet? Брандмауэр? Прокси-сервер? Или какой-либо другой сторожевой таймер сбился с пути?), Но после трех дней отладки я не совсем уверен, как дальше исследовать эту проблему , так как у меня заканчиваются идеи и опыт. Есть мысли / советы / подсказки?

Я должен добавить, что параметры конфигурации LFS (, например lfs.concurrenttransfers и lfs.basictransfersonly) не помогли, аналогично для https://git-scm.com/docs/git-config#Documentation/git-config.txt-httpversion (или просто удалив несколько файлов большего размера)


ОБНОВЛЕНИЕ

на самом деле, похоже, это не о самообслуживаемом агенте, а более общая проблема cfg сети докеров в моей корпоративной сети.

На моем VPN-компьютере (работающем из дома) стабильно быстро работает следующее:

docker run -it
ubuntu bash -c "apt-get update; apt-get install -y wget; start=$SECONDS;
wget http://cdimage.ubuntu.com/lubuntu/releases/18.04/release/lubuntu-18.04-alternate-amd64.iso;
echo Duration: $(( SECONDS - start )) seconds"

Сравнение с загрузкой powershell (на хосте):

$start=Get-Date
$(New-Object
net.webclient).Downloadfile("http://cdimage.ubuntu.com/lubuntu/releases/18.04/release/lubuntu-18.04-alternate-amd64.iso",
"e:/temp/lubuntu-18.04-alternate-amd64.iso")
'Duration: {0:mm}
min {0:ss} sec' -f ($(Get-Date)-$start)

Корпоративная сеть

  • Докер: 1560 секунд (= 26 мин!)
  • Windows host sys: Продолжительность: 00 мин. 15 сек.

Портативный компьютер для разработчиков (VPN, из дома):

  • Докер: 144 секунды (= 2 минуты 24 секунды)
  • Windows host sys: Продолжительность: 02 мин. 16 сек.

Рассмотрение вопросов, обсуждаемых в https://github.com/docker/for-win/issues/698 (и предложенный обходной путь, который у меня не сработал), похоже, это нетривиальная проблема с Windows / hyper-v ..


person iv1    schedule 02.02.2021    source источник
comment
Не могли бы вы создать нового агента с собственным хостом и попробовать его снова, а затем поделиться результатом здесь?   -  person Carlos    schedule 03.02.2021
comment
на самом деле, похоже, это не о самообслуживаемом агенте, а более общая проблема с сетью докеров в моей корпоративной сети. - см. обновление выше   -  person iv1    schedule 07.02.2021


Ответы (1)


Вся проблема решилась сама собой, когда моя компания решила, наконец, перейти с Win10 1803 на 1909 (который идет с WSL, заменяя Hyper-V) .. ???? Теперь все работает сверхплавно (я проводил эти тесты почти 20 раз)

person iv1    schedule 10.02.2021