Немного истории, поэтому контейнеры - это вещь Linux, поэтому в Windows контейнеров как таковых нет. Docker создал Docker для Windows, но, по сути, он запускает виртуальную машину Hyper-V Linux (раньше называвшуюся VirtualBox), и внутри него запускаются ваши контейнеры. Начиная с последней версии Docker, Microsoft добавила в Hyper-V возможности, позволяющие запускать эти контейнеры, облегчая запуск .NET-приложений в контейнерах.
K8s реализован в Golang, поэтому было проще переносить основные компоненты, такие как kubelet
, kube-proxy
, kubectl
, на Windows, используя кросс-компилятор Golang (или встроенный в Windows)
Сложность - сетевое взаимодействие, но, похоже, они выяснили это в документах
Что касается поддержки общедоступного облака от основных провайдеров:
AWS
- Гипервизор: модифицированный Xen или KVM. Нет вложенной поддержки виртуализации.
- VM: Windows VM. Не может использовать Hyper-V с вложенной виртуализацией, но может запустить Docker для Windows.
- Голый металл: (i3.metal на момент написания статьи). Запустите Hyper-V и Docker для Windows.
Azure
- Гипервизор: Hyper-V. Поддерживает вложенную виртуализацию для некоторых типов экземпляров.
- Виртуальные машины: виртуальные машины Windows, могут использовать вложенную виртуализацию с Hyper-V и могут запускать Docker для Windows.
- ACS, AKS, ACE. Должен иметь возможность использовать преимущества Hyper-V с вложенной виртуализацией и в некоторых случаях.
GCP
- Гипервизор: KVM. Поддерживает вложенную виртуализацию для некоторых типов экземпляров.
- ВМ: Windows VM. Может запускать Hyper-V с вложенной виртуализацией и может запускать Docker для Windows.
Кроме этого, я не знаю, что там еще есть (кроме того, что есть в документах ). Вопрос очень широкий. Просто установите Docker для Windows, настройте сеть, присоединитесь к кластеру с помощью kubeadm
и запланируйте рабочие нагрузки Windows, используя спецификацию nodeSelector
в своих модулях, и убедитесь, что вы пометили свои узлы Windows с помощью beta.kubernetes.io/os=windows
Есть еще одно хорошее руководство по настройке Kubernetes с узлами Windows здесь