了解 Windows 上的 Minikube 如何 运行

Understand how Minikube on Windows is run

我正在尝试了解 Minikube 如何在 Windows 上 运行,以进行以下设置。下面有几个相关的问题,希望能帮助我从整体上理解它是如何工作的。

使用 minikube 配置文件列表,我得到以下输出。

C:\>minikube profile list
|----------|-----------|---------|--------------|------|---------|---------|-------|
| Profile  | VM Driver | Runtime |      IP      | Port | Version | Status  | Nodes |
|----------|-----------|---------|--------------|------|---------|---------|-------|
| minikube | docker    | docker  | 192.168.49.2 | 8443 | v1.20.7 | Running |     1 |
|----------|-----------|---------|--------------|------|---------|---------|-------|

这个 minikube 是一个容器 运行ning 使用我本地安装的 Docker 桌面吗?因此,它是在 WSL2 还是 Virtualbox 上 运行s 取决于我如何获得我的 Docker 桌面 运行?

如果我使用 minikube ssh,我可以在其中与 docker 进行交互。从下面的输出来看,是否意味着每个 minikube kubernetes 组件都是 运行 作为一个单独的容器?这是 docker-in-docker 的例子吗?

C:\>minikube ssh
Last login: Wed Nov 10 14:07:23 2021 from 192.168.49.1
docker@minikube:~$ docker ps --format '{{.Names}}'
k8s_storage-provisioner_storage-provisioner_kube-system_b7c766e9-48fe-45dd-a929-d6fd4b6fcf8b_0
k8s_POD_storage-provisioner_kube-system_b7c766e9-48fe-45dd-a929-d6fd4b6fcf8b_0
k8s_kube-proxy_kube-proxy-4r5hz_kube-system_71dc0877-5a47-4b2c-a106-ee41e5f6a142_0
k8s_coredns_coredns-74ff55c5b-pl7tb_kube-system_6cf31402-c3b4-4d86-8963-8a53e36b7878_0
k8s_POD_kube-proxy-4r5hz_kube-system_71dc0877-5a47-4b2c-a106-ee41e5f6a142_0
k8s_POD_coredns-74ff55c5b-pl7tb_kube-system_6cf31402-c3b4-4d86-8963-8a53e36b7878_0
k8s_kube-scheduler_kube-scheduler-minikube_kube-system_82ed17c7f4a56a29330619386941d47e_0
k8s_kube-apiserver_kube-apiserver-minikube_kube-system_01d7e312da0f9c4176daa8464d4d1a50_0
k8s_kube-controller-manager_kube-controller-manager-minikube_kube-system_c7b8fa13668654de8887eea36ddd7b5b_0
k8s_etcd_etcd-minikube_kube-system_c31fe6a5afdd142cf3450ac972274b36_0
k8s_POD_kube-scheduler-minikube_kube-system_82ed17c7f4a56a29330619386941d47e_0
k8s_POD_kube-controller-manager-minikube_kube-system_c7b8fa13668654de8887eea36ddd7b5b_0
k8s_POD_kube-apiserver-minikube_kube-system_01d7e312da0f9c4176daa8464d4d1a50_0
k8s_POD_etcd-minikube_kube-system_c31fe6a5afdd142cf3450ac972274b36_0
docker@minikube:~$

minikube容器使用本地安装的Docker桌面吗?

Minikube是本地Kubernetes,专注于让Kubernetes易于学习和开发。 您只需要 Docker(或类似兼容的)容器或虚拟机环境,Kubernetes 只需一个命令:minikube start。

你需要什么?

  • 2 个或更多 CPU
  • 2GB 可用内存
  • 20GB 可用磁盘space
  • 互联网连接
  • 容器或虚拟机管理器,例如:Docker、Hyperkit、Hyper-V、KVM、Parallels、Podman、VirtualBox 或 VMware

我想指出最后一句话,你可以选择多个容器或虚拟机管理器。 Docker 是您可以选择的选项之一,并且根据您的 post,您当前的部署使用 Docker 作为管理程序。

运行是在 WSL2 还是 Virtualbox 上?

这里有一些关于 WSL2 和 Virtualbox 的信息,但是提供的关于你的环境的信息不足以确定你的部署是在 Virtualbox 还是 WSL2 中。

Virtualbox硬件虚拟化选项是允许处理器提供的虚拟化能力。这对嵌套虚拟化没有帮助。你可以在 Virtualbox 中 运行 in Docker 只要里面没有 hypervisor 运行ning。当我们在 Virtualbox 中 运行 Docker Linux 系统时就是这种情况。使用 Windows 服务器,他们 运行 hyperv 以及他们 运行 Windows 服务器,其中 Docker 运行s。这就是为什么这里需要嵌套虚拟化。

WSL 2 上使用 Docker 桌面 运行,用户可以利用 Linux 工作 space,避免同时维护 Linux 和 Windows 构建脚本。此外,WSL 2 改进了文件系统共享、启动时间,并允许 Docker 桌面用户访问一些很酷的新功能。

在安装 Docker Desktop WSL 2 后端之前,您必须完成以下步骤:

  • 安装 Windows 10,版本 1903 或更高版本或 Windows 11。
  • 在 Windows 上启用 WSL 2 功能。
  • 下载并安装 Linux 内核更新包。

是否每个 minikube kubernetes 组件 运行 作为一个单独的容器?

Minikube 是一个实用程序,可用于 运行 本地计算机上的 Kubernetes。它创建包含在虚拟机 (VM) 中的单节点集群。该集群可让您演示 Kubernetes 操作,而无需耗费时间和资源安装成熟的 K8s。

这是basic concepts of kubernetes.

部署——已配置和可操作的资源。部署是使您能够协调资源的总体过程。

ReplicaSet—pods 组,为您的服务提供资源。

Pod—包含一个或多个容器以及附加的存储资源和配置定义的单元。 Pods 在 ReplicaSets 中分组在一起,所有 pods 在一组 运行 相同的容器镜像中。

节点集群——控制平面和工作节点,每个节点包含一个或多个pods。工作人员 运行 您的工作负载和控制平面一起协调工作人员。这就是 Minikube 创建的。

节点进程——用于连接和管理 Kubernetes 的各种组件。控制平面进程包括 API servers、ectd、Scheduler、kube-controller-manager 和 cloud-controller-manager。工作进程包括 kubelet、kube-proxy 和您的容器 运行time.

容器——您创建的用于保存应用程序的映像。