Kubernetes

kubernetes,简称K8s,是用8代替8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。

Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。
在Kubernetes中,我们可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理

Docker Compose,Docker Swarm,Kubernetes之间的区别

  1. Docker Compose
    Compose 是一个用户定义和运行多个容器的 Docker 应用程序。在 Compose 中你可以使用 YAML 文件来配置你的应用服务。然后,只需要一个简单的命令,就可以创建并启动你配置的所有服务。
    Docker-Compose 是用来管理你的容器的,有点像一个容器的管家。有了Docker-Compose你只需要编写一个文件,在这个文件里面声明好要启动的容器,配置一些参数,执行一下这个文件,Docker就会按照你声明的配置去把所有的容器启动起来,但是Docker-Compose只能管理当前主机上的Docker,也就是说不能去启动其他主机上的Docker容器。
    使用 Compose 基本会有如下三步流程:
  • 在 Dockfile 中定义你的应用环境,使其可以在任何地方复制。
  • 在 docker-compose.yml 中定义组成应用程序的服务,以便它们可以在隔离的环境中一起运行。
  • 运行dcoker-compose up,Compose 将启动并运行整个应用程序。
  1. Docker Swarm
    Swarm是Docker官方提供的一款集群管理工具,其主要作用是把若干台Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各种Docker资源。Swarm和Kubernetes比较类似,但是更加轻,具有的功能也较kubernetes更少一些。

Docker Swarm 是一款用来管理多主机上的Docker容器的工具,可以负责帮你启动容器,监控容器状态,如果容器的状态不正常它会帮你重新帮你启动一个新的容器,来提供服务,同时也提供服务之间的负载均衡,而这些东西Docker-Compose 是做不到的。

Docker Swarm 和 Docker Compose 一样,都是 Docker 官方容器编排项目,但不同的是,Docker Compose 是一个在单个服务器或主机上创建多个容器的工具,而 Docker Swarm 则可以在多个服务器或主机上创建容器集群服务,对于微服务的部署,显然 Docker Swarm 会更加适合。

warm 使用一个发现机制来处理主机的发现和向集群的添加。
Swarm 提供了标准的 Docker API。这使得它提供了开箱即用的能力,能让所有既有的 Docker 管理工具 - 包括第三方的产品- 能自动地、透明地在多个主机上进行伸缩。

  1. Kubernetes
    它是谷歌公司根据自身的多年的运维经验研发的一款容器管理平台。而Docker Swarm则是由Docker 公司研发的。
    这两年Kubernetes已经成为了很多大公司的默认使用的容器管理技术,而Docker Swarm已经在这场与Kubernetes竞争中已经逐渐失势,如今容器管理领域已经开始已经逐渐被Kubernetes一统天下了。

相关参考:
Swarm、Kubernetes哪个更好用?看完这三点你就明白了!(下)
参考URL: https://blog.csdn.net/dt763C/article/details/78818672
巅峰对决之Swarm、Kubernetes、Mesos
参考URL: http://dockone.io/article/1138
Docker Swarm和Kubernetes在大规模集群中的性能比较
参考URL: http://www.dockone.io/article/1145

Kubernetes和OpenStack到底是什么关系?

参考URL: https://blog.csdn.net/dualvencsdn/article/details/79207281
总结起来,OpenStack 是兼容传统的架构,而 Kubernetes 是面向未来的架构。
简单的说,kubernetes是管理container的工具,openstack是管理VM的工具。
Kubernetes 支持的容器运行时不仅仅是 Docker,也包括 Rkt,当然 Docker 更加流行。

container可以运行在物理机上,也可以运行在VM上。所以kubernetes不是需要openstack的支持。但对于云计算来说,很多IasS都通过openstack来管理虚拟机。然后用户可以在这些虚拟机上运行docker,可以通过kubernetes进行管理

kubernetes优点

  1. 管理更趋于完善稳定
    kubernetes 集群管理更趋于完善稳定,同时pod功能上比swarm的service更加强大。
  2. 健康机制完善
    Replication Controllers可以监控并维持容器的生命。
  3. 轻松应对复杂的网络环境
    kubernetes默认使用Flannel作为overlay网络。

Flannel是CoreOS 团队针对 Kubernetes 设计的一个覆盖网络(OverlayNetwork)工具,其目的在于帮助每一个使用 Kuberentes 的CoreOS 主机拥有一个完整的子网。

kubernetes劣势

  1. 配置、搭建稍显复杂,学习成本高
    由于配置复杂,学习成本相对较高,对应运维的成本相对高点。
  2. 启动速度稍逊
    kubernetes会有五层交互,启动是秒级,启动速度慢于swarm。
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐