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

Ned*_*d G 5 docker kubernetes

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

它的真正含义是什么?如何在Docker for Azure上部署我的应用程序?

tgo*_*gos 12

简短回答:

  • Docker(以及一般的容器)解决了打包应用程序及其依赖项的问题.这使得它易于在任何地方运输和运行.

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

我的建议:因为景观很大......开始学习并按照课程将拼图的各个部分放在一起.下面我从Linux基金会提供的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提供的集装箱协调员.