简短答案:
Docker(通常是容器)解决了打包应用程序及其依赖项的问题。这使得在任何地方都可以轻松运输和运行。
Kubernetes是容器之上的抽象层。它是控制/管理容器的分布式系统。
我的建议:因为风景广阔
…开始学习,并按照课程学习,将难题的各个部分放在一起。下面,我从中添加了一些信息:
- Kubernetes简介,来自Linux Foundation的免费在线课程。
为什么我们在容器上方需要Kubernetes(和其他协调器)?
在质量保证(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提供的容器协调器。



