我需要Docker for Kubernetes吗?

时间:2018-07-02 20:19:09

标签: docker kubernetes minikube

场景:

我需要构建一个Web应用程序,可以从中运行/运行/删除/删除/等。集群中的容器。因此,我安装了Kubernetes并从控制台测试了API。一切似乎正常,看起来很好。

在文档之后,他们撰写了有关Docker的文章,但是我是否需要它?

我的意思是我必须禁用Hyper-V才能使Minikube工作,并且重启后,Docker(通常在启动时启动)说:“出了点问题。。。。我可以在proxys上创建部署和Minikube
这有点令人困惑。

有人可以为假人解释一下吗?

3 个答案:

答案 0 :(得分:5)

从技术上讲,您需要一个遵守CRI (Container Runtime Interface)容器运行时

https://d3vv6lp55qjaqc.cloudfront.net/items/0I3X2U0S0W3r1D1z2O0Q/Image%202016-12-19%20at%2017.13.16.png

这就是为什么拥有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 HatAntonio 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运行应用程序容器。