Kubernetes vs. Docker:它真正意味着什么?

时间:2018-05-15 08:35:42

标签: docker kubernetes

我知道Docker和Kubernetes不是直接竞争对手。 Docker是容器平台,容器由Kubernetes协调和安排,这是一种工具。

它到底意味着什么?我如何在Docker for Azure上部署我的应用程序?

3 个答案:

答案 0 :(得分:10)

简答:

  • Docker(以及一般的容器)解决了打包应用程序及其依赖项的问题。这样便于在任何地方发货和运行。

  • Kubernetes是容器之上的一层抽象。它是一个控制/管理容器的分布式系统。

我的建议:因为landscape是巨大的......开始学习并按照课程将拼图的各个部分放在一起。下面我添加了Linux Foundation提供的https://www.edx.org/course/introduction-to-kubernetes课程中的一些信息。

为什么我们需要Kubernetes(和其他orchestrator)在容器之上?

在质量保证(QA)环境中,我们可以在单个主机上运行容器来开发和测试应用程序。但是, 当我们开始制作时,我们没有相同的自由 ,因为我们需要确保我们的应用程序:

  • 是容错的
  • 可以扩展,并按需执行此操作
  • 以最佳方式使用资源
  • 可以自动发现其他应用程序并相互通信
  • 可以从外部世界访问
  • 可以在没有任何停机的情况下更新/回滚。

容器协调程序 是将主机组合在一起形成群集的工具,可帮助我们满足上述要求。

如今,有许多容器协调器可供使用,例如:

  • Docker Swarm: Docker Swarm是Docker,Inc。提供的容器协调器。它是Docker Engine的一部分。
  • Kubernetes: Kubernetes由Google创办,但现在,它是Cloud Native Computing Foundation项目的一部分。
  • Mesos Marathon: Marathon是在Apache Mesos上大规模运行容器的框架之一。
  • Amazon ECS :Amazon EC2容器服务(ECS)是AWS提供的托管服务,可在其基础架构上大规模运行Docker容器。
  • Hashicorp Nomad: Nomad是HashiCorp提供的集装箱协调员。

答案 1 :(得分:1)

Kubernetes基于Docker技术。它是Docker容器的编排工具,而Docker是一种创建和部署容器的技术。

Docker,从名为dotCloud的平台即服务(PaaS)提供商开始。

总而言之,Kubernetes与Docker容器相关,允许您在容器编排中实现应用程序的可移植性和可扩展性。

<强>泊坞 安装和配置简单快捷 功能由Docker API提供并受其限制 即使在非常大的集群中也可以快速部署容器和扩展 通过群集中的任何节点实现自动内部负载平衡 简单的共享本地卷

<强> Kubernetes 需要一些工作来启动和运行 客户端,API和YAML定义是Kubernetes独有的 以速度为代价为集群状态提供强有力的保证 要启用负载平衡,需要手动配置服务 pod中共享的卷

这只是一个基本的想法,至少解释了差异。如果你想深入了解我的帖子

http://www.thecreativedev.com/an-introduction-to-kubernetes/

http://www.thecreativedev.com/learn-docker-works/

答案 2 :(得分:0)

Docker和Kubernetes是互补的。 Docker提供了一个打包和分发容器化应用程序的开放标准,而Kubernetes提供了使用Docker创建的分布式容器化应用程序的编排和管理。换句话说,Kubernetes提供了部署和运行使用Docker构建的应用程序所需的基础架构。