容器编排技术
在很多场景下,我们不是使用单一的容器,比如一个web服务器,数据库需要一个docker, tomcat需要一个docker, redis需要一个docker.
在一个服务场景中,需要多个容器相互访问,共同对外提供整体服务
这些容器的宿主机,可能是物理上部署在同一台机器上,也可以是物理上部署在多台机器上(物理机或者虚拟机)
这种管理多个容器,部署到多个宿主机的技术,叫做容器编排技术
容器编排技术,就是集群技术
Docker Compose
Docker Compose 是在单个主机上管理多个容器的工具
通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务
Compose 使用的三个步骤:
- 使用 Dockerfile 定义应用程序的环境。
- 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
- 最后,执行 docker-compose up 命令来启动并运行整个应用程序。
Docker Swarm
Docker Swarm 和 Docker Compose 一样,都是 Docker 官方容器编排项目,但不同的是,Docker Compose 是在单个主机上管理多个容器的工具,而 Docker Swarm是在多个主机上管理容器集群的工具,对于微服务的部署,显然 Docker Swarm 会更加适合
Docker Swarm具有与Docker生态系统紧密集成并使用自己的API的优势。它监视跨服务器群集的容器数量,是在没有其他硬件的情况下创建群集docker应用程序的最便捷方式。它为Dockerized应用程序提供了一个小规模但有用的编排系统。
Docker Swarm轻量级、实施快、以实现核心功能为重,比较适合小规模部署
Kubernetes
k8s也是在多个主机上管理容器集群的工具,相比于swarm是docke官方推出的集群方案,k8s是脱胎于google的一款基于容器的应用部署和管理打造一套强大并且易用的管理平台。相比swarm而言,k8s更懂容器的管理。
k8s是功能齐备的主流容器编排技术,能满足绝大部分需求场景,但是学习曲线高,操作复杂
k8s企业级、功能全、支撑场景多,适合做企业级docker云方案
发表回复