原文网址:Docker、Docker Compose、Docker Swarm、K8S的区别_IT利刃出鞘的博客-CSDN博客
简介
说明
本文介绍K8S,包括:K8S和Docker的关系、不同的部署方式之间的区别。
官网
Github:https://github.com/kubernetes/kubernetes
简要对比
应用有如下几种部署方式:
- 传统方式
- 手动安装MySQL、Nginx,运行应用等
- 缺点:麻烦
- docker
- 安装过程只需要拉取镜像,启动即可,而不用关心软件的配置,版本等信息。
- 缺点:
- 如果容器很多,工作量依然很大;
- 真实的业务场景下,容器应用间的依赖关系,网络通信,数据持久化,状态等非常复杂,用这种方式处理起来非常棘手。
- docker-compose
- 只能单机编排容器,不能实现多机编排。可以认为是一个单机版“操作系统”
- Docker swarm
- 支持分布式下环境下的容器编排
- 缺点:
- 只有分布式编排这一个功能,没有动态伸缩、可视化等功能
- K8S
- 支持分布式下环境下的容器编排
- 优点:
- 功能很多。
对比实例
我们看一个简单的场景,来理解为什么编排能力才是我们更看重的东西。
我们以部署一个wordpress博客网站进行示例。
方式1:最传统的方式
你需要用二进制安装配置mysql, 安装nginx服务器,以及wordpress程序等等…
仅仅部署几个应用,你就能觉得它的复杂,配置的繁琐。可以想象,如果是几十上百个应用,自动化的过程不可避免。
方式2:独立的Docker容器
#1.拉取镜像
docker pull mysql
docker pull wordpress
#2.启动mysql
docker run --name w-mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
#3.启动wordpress,并连接mysql
docker run --name w-wordpress --link w-mysql:db -p 80:80 -d wordpress:latest
可以看到,安装过程只需要拉取镜像,启动即可,而不用关心软件的配置,版本等信息。简化了不少,但是还是手动去启动,拉取镜像等,如果容器很多,工作量依然很大,这只是个博客系统比较简单,真实的业务场景下,容器应用间的依赖关系,网络通信,数据持久化,状态等等我们关心的问题非常复杂,用这种方式处理起来非常棘手。
方式3:docker-compose 轻量编排
上边是文章的部分内容,为便于维护,全文已转移到此网址:K8S和Docker的关系 - 自学精灵