Как развернуть модули kubernetes в версиях ос windows с hyper v в windows 1803?

У меня есть простой один мастер (Ubuntu 1604), один рабочий (Windows Server 1803) кластер кубернетов.

У меня также есть агент сборки Jenkins (Windows Server 2016), который создает образ докера .NET в конвейере.

Базовое изображение: ОТ microsoft / aspnet: 4.7.2-windowsservercore-ltsc2016

Моя цель - создать развертывание на kubernetes worker (Windows Server 1803) с использованием образа, созданного агентом сборки Jenkins (Windows Server 2016). Однако, поскольку образы Windows должны точно соответствовать версии Windows, в которой они работают, в настоящее время это невозможно сделать из коробки.

От https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/version-compatibility

"Windows Server Containers are blocked from starting when the build number between the container host and the container image are different"

Однако из той же ссылки (https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/version-compatibility) описывается, что это возможно с использованием Hyper-V.

Unlike standard Windows containers, which share the kernel between containers and the host, each Hyper-V isolated container has its own instance of the Windows kernel. Because of this you can have different OS versions in the container host and image (see compatibility matrix below).

Я использовал документы отсюда: https://docs.microsoft.com/en-us/windows-server/virtualization/hyper-v/get-started/install-the-hyper-v-role-on-windows-server, выполнил следующее и перезапустил хост Windows, чтобы попытаться включить Hyper-V:

Install-WindowsFeature -Name Hyper-V -ComputerName <computer_name> - 
IncludeManagementTools -Restart

Затем снова из https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/version-compatibility,

To run a container with Hyper-V isolation, simply add the tag --isolation=hyperv to your docker run command.

Я попытался это сделать, подключив RDP к рабочему 1803 и выполнив следующую команду docker, и получил ту же ошибку. (ОС контейнера должна соответствовать ОС хоста)

docker run microsoft/iis:ltsc2016 --isolation=hyperv

В целом, мне не удалось запустить докер-контейнер с Hyperv, и я не могу найти ничего о том, как «активировать» или использовать Hyperv с yml-файлом развертывания kubernetes.

Мы очень ценим любые мысли!

Подробнее:

Настройка кластера с использованием: https://onedrive.live.com/view.aspx?resid=E2B6765015E5FA01!339&ithint=file%2cdocx&app=Word&authkey=!AGvs_s_hWs7xHGs

Выше ссылка была обновленным набором инструкций в разделе обратной связи на этой странице: https://docs.microsoft.com/en-us/virtualization/windowscontainers/kubernetes/getting-started-kubernetes-windows, который не работал у меня.

правильно ли вы отметили изображение? Как указано в руководстве, которое вы связали: Prepare Infrastructure Image I recommend you pick an image and double-check that it works for your specific build. Otherwise, your pods may later be stuck in “ContainerCreating” status indefinitely. There are three steps to this: pulling the image, tagging it as microsoft/nanoserver:latest, and running it. For Windows Server 2019 images simply adjust the docker pull command below to match your specific insider build

aurelius 26.10.2018 16:45

Спасибо за ответ! Мне удалось успешно запустить образ докера на рабочем сервере 1803 с использованием тега: 1803, но теперь моя цель - использовать hyperv для запуска образа Windows Server 2016 на рабочем сервере 1803 Kubernetes. Это должно быть возможно в соответствии с графиком на docs.microsoft.com/en-us/virtualization/windowscontainers/…, но не может заставить его работать. Я также отредактировал свой вопрос для большей ясности. Спасибо еще раз!

mm1620 01.11.2018 19:30
1
2
171
0

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