Minikube против Kubernetes в Docker для Windows

Большинство руководств, которые я видел для разработки с Kubernetes локально, используют Minikube. В последней версии Docker для Windows Edge вы также можете включить Kubernetes. Я пытаюсь понять разницу между ними и то, что мне следует использовать.

  1. Minikube позволяет вам выбрать нужную вам версию Kubernetes, может ли это сделать Docker для Windows? Я не вижу возможности его настроить.
  2. В Minikube есть команды интерфейса командной строки для включения панели управления, кучи, входа и других надстроек. Я не уверен, почему, потому что я понимаю, что они просто выполняют kubectl apply -f http://....
  3. С Minikube я могу сделать minikube ip, чтобы получить IP-адрес кластера для входа, как я могу сделать это с помощью Docker для Windows?
  4. Есть ли что-нибудь еще, что меня должно волновать?

person Muhammad Rehan Saeed    schedule 06.07.2018    source источник
comment
Одна из основных причин, по которой я использую Minikube вместо Docker Desktop, заключается в том, что ограничения ресурсов Minikube полностью настраиваются из командной строки, тогда как Docker Desktop требует, чтобы вы зашли в графический интерфейс для настройки таких вещей, как использование ЦП, памяти и диска. Многие из этих вещей (особенно использование диска, если вы знаете, что ваши изображения будут превышать 64 ГБ по умолчанию) тесно связаны с вашим исходным кодом и, следовательно, должны контролироваться с помощью сценариев автоматизации, чтобы весь проект можно было привести в рабочее состояние. с минимальным взаимодействием.   -  person MPLewis    schedule 10.03.2021


Ответы (2)


Я чувствую, что вы в значительной степени разбираетесь в пространстве и в основном уже имеете ответы на свои вопросы. Вы можете найти Docker для Mac и Docker Toolbox информативным чтением, даже если речь идет об эквиваленте Mac, а не о Windows, и о Docker, упакованном как виртуальная машина, а не конкретно о Kubernetes.

  1. Фактически, вы застряли на конкретной версии Kubernetes, которую публикует настольный дистрибутив Docker Edge.

  2. отвечает в вопросе.

  3. Я считаю, что службы типа NodePort публикуются на IP-адресе вашего хоста; не существует промежуточного адреса виртуальной машины, как в случае с Docker Toolbox.

  4. Docker Toolbox и minikube всегда используют полноценную виртуальную машину с готовым гипервизором. Настольное приложение Docker может использовать более легкий механизм виртуализации, если он доступен.

  5. Kubernetes может потребовать значительной фоновой работы. Если вы используете Kubernetes-in-Docker, сложно «выключить» Kubernetes, оставив Docker доступным; но если у вас есть отдельная виртуальная машина minikube, вы можете просто остановить ее.

person David Maze    schedule 06.07.2018
comment
Что ж, вы можете снять флажок Включить Kubernetes в настройках / предпочтениях Docker Edge на вкладке Kubernetes, чтобы остановить виртуальную машину docker-for-desktop. - person VASャ; 06.07.2018

Вот часть документации Docker:

Kubernetes доступен только в Docker для Windows 18.02 CE Edge. Поддержка Kubernetes не включена в Docker для Windows 18.02 CE Stable. Чтобы узнать больше о стабильных и пограничных каналах и о том, как переключаться между ними, см. Общая конфигурация.

Docker для Windows 18.02 CE Edge включает автономный сервер и клиент Kubernetes, а также интеграцию Docker CLI. Сервер Kubernetes работает локально в вашем экземпляре Docker, не настраивается и представляет собой кластер с одним узлом.

Сервер Kubernetes работает в контейнере Docker в вашей локальной системе и предназначен только для локального тестирования. Когда поддержка Kubernetes включена, вы можете развертывать свои рабочие нагрузки параллельно, в Kubernetes, Swarm или как отдельные контейнеры. Включение или отключение сервера Kubernetes не влияет на другие ваши рабочие нагрузки.

См. Docker для Windows> Начало работы, чтобы включить Kubernetes и начать тестирование развертывания. ваших рабочих нагрузок в Kubernetes.

Если у вас достаточно ресурсов ЦП и ОЗУ, вы можете легко иметь оба, minikube и docker-for-desktop на одном компьютере и переключаться между ними, выбирая контекст, например:

> kubectl config get-contexts
> kubectl config use-context docker-for-desktop

На данный момент нет места для выбора версии Kubernetes для докер для рабочего стола. Он предварительно выбран в пакете распространения Docker.

К сожалению, версия docker внутри minikube отстает от версии, доступной на веб-сайте docker, и некоторые функции могут быть отсутствует, но если вас интересует среда Kubernetes, в большинстве случаев это не имеет значения.

Некоторые функции Kubernetes зависят от внешних ресурсов и могут быть недоступны для вас в случае локальной установки. Например, вам нужна возможность создать Cloud Load Balancer для использования некоторых типов объектов Ingress или Service.

Но другие ресурсы можно легко запустить внутри minikube или docker-for-desktop с помощью kubectl create/apply.

Чтобы предоставить доступ к ресурсам кластера извне, вы можете использовать контроллер входящего трафика Webhook Relay.
Вот ссылка на руководство по установке.

person VASャ    schedule 06.07.2018
comment
Есть идеи, как сделать эквивалент minikube ip в Docker для Windows? - person Muhammad Rehan Saeed; 06.07.2018
comment
$ (kubectl describe node docker-for-desktop) или $ (docker run --net = host codenvy / che-ip). Вы также можете запустить привилегированный контейнер и запустить ifconfig: $ (docker run -it --privileged --pid = host debian nsenter -t 1 -m -u -n -i sh) - person VASャ; 09.07.2018