Моя команда работает над древним монолитным проектом, написанным на ASP.NET; чтобы добавить веселья, проект работает только в IE11 (срок службы истек), который доступен только на ПК. Мы пытаемся модернизировать приложение, переходя на контейнеры в Kubernetes (и да, в конечном итоге мы его демонтируем, но ненадолго). Хотя у нас есть настройка среды разработки, нам также необходимо создать среду QA и, в конечном итоге, среду Prod. Мы работаем над MacOS и не видим контейнер, встроенный в VMWare Fusion, и понятия не имеем, почему.

В проекте используются:

-ASP.Net MVC 1.0

-.Net Framework v4.8

-XmlTransformed web.config

-Аутентификация Windows

Не могу запустить его локально, но строится нормально. Имеет монитор работоспособности, который дает сбой в случае ошибки конфигурации. Это предотвращает появление контейнера в k8s для проверки. Время сборки/развертывания ~30 минут за цикл.

Варианты, которые мы активно изучаем:

  1. Получите виртуальную машину под управлением Windows с IE11: не уверен, какой уровень доступа у нас будет и достаточно ли его для отладки с помощью VisualStudio или другого. Нам нужен доступ администратора, но мы не уверены, будут ли мешать политики IAM/AD.
  2. Доставьте физический ПК в дом нашего ведущего разработчика: у него определенно будет доступ администратора, но это похоже на ядерный вариант.

Мысли? Жду любых советов по этому поводу.

-1
pandamaru 2 Фев 2022 в 03:40

2 ответа

Предположительно, вам придется запускать это в контейнере Windows. На Mac вам придется либо выполнить двойную загрузку, либо использовать виртуальную машину для запуска контейнеров Windows, и если вы собираетесь это сделать, вы можете просто установить ее на виртуальную машину, не используя докер и k8s.

Весьма вероятно, что вы сможете запустить его и использовать виртуальную машину, аутентификация и сеть будут вашими камнем преткновения, но, вероятно, это решаемо, я сомневаюсь, что вам нужно будет отправлять физическую машину вашему ведущему разработчику. (также вероятно, что вы можете разместить виртуальную машину в Azure / AWS или Google Cloud — если хотите)

1
Tim Jarvis 2 Фев 2022 в 04:12

Добавление к ответу Тима:

Существуют контейнеры Linux и контейнеры Windows. Поскольку .NETFramework 4.8 предназначен только для Windows, вам необходимо иметь возможность запускать контейнеры Windows в Kubernetes. Контейнеры Windows могут работать только на хосте Windows, см. этот ответ для получения дополнительной информации, поэтому вам понадобится пул узлов Windows в ваш кластер kubernetes. Затем вы можете установить селектор узла. для Windows nodeSelector: { kubernetes.io/os: windows }

Чтобы создать/запустить контейнеры Windows в OSX, вам потребуется запустить виртуальную машину Windows. См., например: https://github.com/StefanScherer. /windows-docker-machine#create-the-docker-machine

0
ahmelsayed 2 Фев 2022 в 04:38