代码之家  ›  专栏  ›  技术社区  ›  Muhammad Rehan Saeed

Windows Docker中的Minikube与Kubernetes

  •  19
  • Muhammad Rehan Saeed  · 技术社区  · 6 年前

    我看到的大多数与kubernetes一起开发的教程都使用minikube。在Docker for Windows的最新边缘版本中,还可以启用Kubernetes。我在试着理解两者之间的区别,并且我应该使用它们。

    1. Minikube让你选择你想要的kubernetes版本,Docker for Windows能做到吗?我看不到配置它的方法。
    2. minikube有cli命令来启用dashboard、heapster、ingres和其他插件。我不知道为什么,因为我的理解是,这些只是执行 kubectl apply -f http://... 是的。
    3. 有了Minikube我可以 minikube ip 要获取用于入口的群集IP地址,如何使用Docker for Windows执行此操作?
    4. 还有什么我应该关心的。
    2 回复  |  直到 6 年前
        1
  •  10
  •   David Maze    6 年前

    我觉得你基本上了解这个空间,而且大部分问题都已经有了答案。你可能会发现 Docker for Mac vs. Docker Toolbox 一个信息性的阅读,即使它是关于mac而不是windows,关于docker打包成vm而不是kubernetes。

    1. 事实上,你被Docker Edge桌面发行版发布的Kubernetes的特定版本所困扰。

    2. 在这个问题上得到了回答。

    3. 我相信nodeport类型的服务发布在主机的ip地址上;没有像docker toolbox那样的中间vm地址。

    4. Docker工具箱和Minikube总是使用一个成熟的虚拟机和一个现成的管理程序。Docker桌面应用程序可能会使用较轻的虚拟化引擎(如果有的话)。

    5. 库伯内特斯可能涉及一些重要的背景工作。如果你在Docker中使用Kubernetes,很难“关闭”Kubernetes并且仍然有Docker可用;但是如果你有一个单独的Minikube虚拟机,你可以停止它。

        2
  •  5
  •   VAS    6 年前

    这是Docker的一部分 documentation 以下内容:

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

    Docker for Windows 18.02 CE Edge包含一个独立的Kubernetes 服务器和客户端,以及docker cli集成。库伯内特家族 服务器在Docker实例中本地运行,不可配置, 是一个单节点集群。

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

    Docker for Windows > Getting started 启用kubernetes和 开始在kubernetes上测试工作负载的部署。

    如果你有足够的CPU和RAM资源,你可以很容易地同时拥有它们, minikube docker-for-desktop 在同一台机器上,通过选择上下文在它们之间切换,例如:

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

    目前没有地方可以选择kubernetes版本 docker-for-desktop .它是 preselected 在Docker分发包中。

    不幸的是,与Docker网站上提供的Docker相比,Minikube中的Docker版本落后了一步,有些功能可能是 missing ,但是如果您对kubernetes环境感兴趣,在大多数情况下这并不重要。

    kubernetes的一些特性依赖于外部资源,在本地安装时可能无法使用。例如,您需要能够创建云负载平衡器来使用 Ingress Service 物体。

    但其他资源可以很容易地在 迷你库贝 ,或 桌面的Docker 使用 kubectl create/apply 是的。

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