场景:
我需要构建一个Web应用程序,可以从中运行/运行/删除/删除/等。集群中的容器。因此,我安装了Kubernetes
并从控制台测试了API。一切似乎正常,看起来很好。
在文档之后,他们撰写了有关Docker的文章,但是我是否需要它?
我的意思是我必须禁用Hyper-V
才能使Minikube
工作,并且重启后,Docker(通常在启动时启动)说:“出了点问题。。。。我可以在proxys
上创建部署和Minikube
。
这有点令人困惑。
有人可以为假人解释一下吗?
答案 0 :(得分:5)
从技术上讲,您需要一个遵守CRI (Container Runtime Interface)的容器运行时。
这就是为什么拥有CRI-O的原因,它提供了符合OCI的运行时和kubelet之间的集成路径。
请参见 CRI-O, the Project to Run Containers without Docker, Reaches 1.0 的“ Susan Hall”。
该项目“更轻松地将alternative container runtimes插入kubelet中,而不是依赖默认的docker运行时。”
这些新的运行时可能包括基于虚拟机的运行时,例如 runv 和 Clear Containers ,或标准的Linux容器运行时,例如
rkt
,” {{ 3}}高级工程师Red Hat在Antonio Murdaca上写道。
但是,在您的情况下,您的问题是使Minikube与HyperV配合使用:请参见 Project Atomic blog 中的“ Minikube on Windows 10 with Hyper-V”。
诀窍是创建一个名为“主要虚拟交换机”的新(外部)虚拟网络交换机,并使用以下命令启动Minikube:
minikube start --vm-driver hyperv --hyperv-virtual-switch "Primary Virtual Switch"
答案 1 :(得分:0)
如果您在OSX或Linux上运行minikube,则可以通过运行configure Docker to use the minikube environment
eval $(minikube docker-env)
执行此操作时,不需要单独的Docker桌面应用程序。从技术上讲,您仍在使用Docker和Kubernetes,但不会在OSX上使用带有“鲸鱼”图标的设置。
从根本上说,Kubernetes负责启动和管理Docker容器。 (或者可能还有其他东西,但几乎总是Docker容器。)这是一个更复杂,功能更强大的工具,与Docker Compose和Docker Swarm相同。 Minikube是一个很小的Kubernetes集群,它在虚拟机内部运行。如果运行kubectl get nodes
,则将看到单个VM节点,其中包括Docker副本。
答案 2 :(得分:-1)
如上所述,您需要任何运行时容器。 Kubernetes和docker是生态系统的一部分。两者都有不同的职责,kubernetes处理集群运行状况,并由docker运行应用程序容器。