Docker Windows 中的 Minikube 与 Kubernetes
Minikube vs Kubernetes in Docker for Windows
我看到的大多数本地 Kubernetes 开发教程都使用 Minikube。在 Docker for Windows 的最新 Edge 版本中,您还可以启用 Kubernetes。我正在尝试了解两者之间的区别以及我应该使用哪个。
- Minikube 让你选择你想要的 Kubernetes 版本,Docker for Windows 可以做到吗?我没有看到配置它的方法。
- Minikube 有 CLI 命令来启用 dashboard、heapster、ingress 和其他插件。我不确定为什么,因为我的理解是这些只是在执行
kubectl apply -f http://...
。
- 使用 Minikube,我可以执行
minikube ip
来获取用于入口的集群 IP 地址,我如何使用 Docker 为 Windows 执行此操作?
- 还有什么不同是我应该关心的吗。
我觉得您基本了解 space,并且您的问题大多已经有了答案。您可能会发现 Docker for Mac vs. Docker Toolbox 是一本信息丰富的读物,即使它是关于 Mac 等价物而不是 Windows 并且关于 Docker 打包为 VM 而不是专门打包为 Kubernetes。
事实上,您被 Docker Edge 桌面发行版发布的特定版本的 Kubernetes 困住了。
在问题中得到了回答。
我相信 NodePort 类型的服务发布在您主机的 IP 地址上;没有像 Docker 工具箱那样的中间 VM 地址。
Docker Toolbox 和 minikube 总是使用成熟的虚拟机和现成的管理程序。 Docker 桌面应用程序可能会使用轻型虚拟化引擎(如果可用)。
Kubernetes 可能涉及一些重要的后台工作。如果您使用的是 Kubernetes-in-Docker,则很难 "turn off" Kubernetes 并且仍然有 Docker 可用;但是如果你有一个单独的 minikube VM,你可以停止它。
这是 Docker documentation 的一部分:
Kubernetes is only available in Docker for Windows 18.02 CE Edge.
Kubernetes support is not included in Docker for Windows 18.02 CE
Stable. To find out more about Stable and Edge channels and how to
switch between them, see General configuration.
Docker for Windows 18.02 CE Edge includes a standalone Kubernetes
server and client, as well as Docker CLI integration. The Kubernetes
server runs locally within your Docker instance, is not configurable,
and is a single-node cluster.
The Kubernetes server runs within a Docker container on your local
system, and is only for local testing. When Kubernetes support is
enabled, you can deploy your workloads, in parallel, on Kubernetes,
Swarm, and as standalone containers. Enabling or disabling the
Kubernetes server does not affect your other workloads.
See Docker for Windows > Getting started to enable Kubernetes and
begin testing the deployment of your workloads on Kubernetes.
如果您有足够的 CPU 和 RAM 资源,您可以轻松地在同一台机器上同时拥有 minikube
和 docker-for-desktop
,并通过选择上下文在它们之间切换,例如:
> kubectl config get-contexts
> kubectl config use-context docker-for-desktop
目前Docker分发包中没有为docker-for-desktop. It is preselected选择Kubernetes版本的地方。
不幸的是,与 docker 网站上可用的版本相比,minikube 中的 docker 版本落后了一步,一些功能可能是 missing,但如果您有兴趣Kubernetes环境,大多数情况下并不重要
Kubernetes 的某些功能依赖于外部资源,在本地安装的情况下可能对您不可用。例如,您需要能够创建 Cloud Load Balancer 以使用某些类型的 Ingress
或 Service
对象。
但是可以使用 kubectl create/apply
.
在 minikube
或 docker-for-desktop
中轻松启动其他资源
要向外部公开您的集群资源,您可以使用Webhook Relay Ingress controller。
这是安装手册的link。
我看到的大多数本地 Kubernetes 开发教程都使用 Minikube。在 Docker for Windows 的最新 Edge 版本中,您还可以启用 Kubernetes。我正在尝试了解两者之间的区别以及我应该使用哪个。
- Minikube 让你选择你想要的 Kubernetes 版本,Docker for Windows 可以做到吗?我没有看到配置它的方法。
- Minikube 有 CLI 命令来启用 dashboard、heapster、ingress 和其他插件。我不确定为什么,因为我的理解是这些只是在执行
kubectl apply -f http://...
。 - 使用 Minikube,我可以执行
minikube ip
来获取用于入口的集群 IP 地址,我如何使用 Docker 为 Windows 执行此操作? - 还有什么不同是我应该关心的吗。
我觉得您基本了解 space,并且您的问题大多已经有了答案。您可能会发现 Docker for Mac vs. Docker Toolbox 是一本信息丰富的读物,即使它是关于 Mac 等价物而不是 Windows 并且关于 Docker 打包为 VM 而不是专门打包为 Kubernetes。
事实上,您被 Docker Edge 桌面发行版发布的特定版本的 Kubernetes 困住了。
在问题中得到了回答。
我相信 NodePort 类型的服务发布在您主机的 IP 地址上;没有像 Docker 工具箱那样的中间 VM 地址。
Docker Toolbox 和 minikube 总是使用成熟的虚拟机和现成的管理程序。 Docker 桌面应用程序可能会使用轻型虚拟化引擎(如果可用)。
Kubernetes 可能涉及一些重要的后台工作。如果您使用的是 Kubernetes-in-Docker,则很难 "turn off" Kubernetes 并且仍然有 Docker 可用;但是如果你有一个单独的 minikube VM,你可以停止它。
这是 Docker documentation 的一部分:
Kubernetes is only available in Docker for Windows 18.02 CE Edge. Kubernetes support is not included in Docker for Windows 18.02 CE Stable. To find out more about Stable and Edge channels and how to switch between them, see General configuration.
Docker for Windows 18.02 CE Edge includes a standalone Kubernetes server and client, as well as Docker CLI integration. The Kubernetes server runs locally within your Docker instance, is not configurable, and is a single-node cluster.
The Kubernetes server runs within a Docker container on your local system, and is only for local testing. When Kubernetes support is enabled, you can deploy your workloads, in parallel, on Kubernetes, Swarm, and as standalone containers. Enabling or disabling the Kubernetes server does not affect your other workloads.
See Docker for Windows > Getting started to enable Kubernetes and begin testing the deployment of your workloads on Kubernetes.
如果您有足够的 CPU 和 RAM 资源,您可以轻松地在同一台机器上同时拥有 minikube
和 docker-for-desktop
,并通过选择上下文在它们之间切换,例如:
> kubectl config get-contexts
> kubectl config use-context docker-for-desktop
目前Docker分发包中没有为docker-for-desktop. It is preselected选择Kubernetes版本的地方。
不幸的是,与 docker 网站上可用的版本相比,minikube 中的 docker 版本落后了一步,一些功能可能是 missing,但如果您有兴趣Kubernetes环境,大多数情况下并不重要
Kubernetes 的某些功能依赖于外部资源,在本地安装的情况下可能对您不可用。例如,您需要能够创建 Cloud Load Balancer 以使用某些类型的 Ingress
或 Service
对象。
但是可以使用 kubectl create/apply
.
minikube
或 docker-for-desktop
中轻松启动其他资源
要向外部公开您的集群资源,您可以使用Webhook Relay Ingress controller。
这是安装手册的link。