Windows版Docker中的Minikube与Kubernetes

时间:2018-07-06 11:51:21

标签: docker kubernetes minikube docker-for-windows

我见过的使用Kubernetes在本地开发的大多数教程都使用Minikube。在适用于Windows的Edge的最新Edge版本中,您还可以启用Kubernetes。我试图了解两者之间的区别以及应该使用的区别。

  1. Minikube允许您选择所需的Kubernetes版本,Docker for Windows可以做到吗?我看不到配置它的方法。
  2. Minikube具有CLI命令,可启用仪表板,堆,入口和其他插件。我不确定为什么,因为我的理解是它们只是在执行kubectl apply -f http://...
  3. 使用Minikube,我可以执行minikube ip来获取用于入口的群集IP地址,如何使用Docker for Windows来做到这一点?
  4. 还有什么我需要关注的吗?

2 个答案:

答案 0 :(得分:9)

我觉得您对空间非常了解,并且已经对您的问题有了答案。您可能会发现Docker for Mac vs. Docker Toolbox内容丰富,即使它与Mac等效,而不是Windows,以及与Docker打包为VM而不是Kubernetes特别相关。

  1. 实际上,您对Docker Edge桌面发行版发布的特定版本的Kubernetes感到困惑。

  2. 问题中回答了
  3. 我相信NodePort类型的服务会发布在您主机的IP地址上;没有像Docker Toolbox一样的中间VM地址。

  4. Docker Toolbox和minikube始终使用带有现成虚拟机管理程序的功能完善的虚拟机。如果可用,则Docker桌面应用程序可能会使用轻量级的虚拟化引擎。

  5. Kubernetes可能涉及一些重要的背景工作。如果您正在使用Kubernetes-in-Docker,则很难“关闭” Kubernetes,并且仍然可以使用Docker。但是如果您有单独的minikube VM,则可以停止它。

答案 1 :(得分:5)

这是Docker documentation的一部分:

  

Kubernetes仅在适用于Windows 18.02 CE Edge的Docker中可用。   Windows 18.02 CE的Docker不包含Kubernetes支持   稳定。要了解有关稳定和边缘渠道以及如何   在它们之间切换,请参阅常规配置。

     

用于Windows 18.02 CE Edge的Docker包含一个独立的Kubernetes   服务器和客户端,以及Docker CLI集成。 Kubernetes   服务器在您的Docker实例中本地运行,不可配置,   并且是一个单节点群集。

     

Kubernetes服务器在您本地的Docker容器中运行   系统,仅用于本地测试。当Kubernetes支持是   启用后,您可以在Kubernetes上并行部署工作负载,   群聚,并作为独立容器。启用或禁用   Kubernetes服务器不会影响您的其他工作负载。

     

请参见Docker for Windows > Getting started以启用Kubernetes和   开始在Kubernetes上测试工作负载的部署。

如果您有足够的CPU和RAM资源,则可以轻松地将minikubedocker-for-desktop都放在同一台计算机上,并通过选择上下文在它们之间进行切换,例如:

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

目前无处选择docker-for-desktop的Kubernetes版本。它是Docker分发包中的preselected

不幸的是,与docker网站上提供的版本相比,minikube内部的docker版本落后了一步,某些功能可能是missing,但是如果您对Kubernetes环境感兴趣,那么在大多数情况下。

Kubernetes的某些功能依赖于外部资源,在本地安装时可能对您不可用。例如,您需要具有创建Cloud Load Balancer的功能,以使用某些类型的IngressService对象。

但是可以在minikube内或使用docker-for-desktopkubectl create/apply内轻松启动其他资源。

要在外部公开群集资源,可以使用Webhook Relay Ingress controller
这是安装手册的link