Docker swarm基本概念

简介

swarm是Docker自带的集群解决方案。

支持docker swarm的项目叫swarmkit

核心概念

node

集群要考虑的问题,是把多个container部署到多个机器上。一台台独立的机器,叫做node,也叫host

manager node

集群需要一个管理端,用户通过管理段操作集群

manager node运行swarm的管理端

worker node

workeer node是除manager node之外的节点

service

Service是用户提交给swarm的任务

比如用户想运行一个redis集群,就在swarm中创建一个service,告知swarm至少以下方面:

  • 本集群的image镜像是什么
  • 本集群对外端口是什么
  • 本集群运行多少个redis实例

当然还可以配置更详细的,比如资源,权限和策略等

task

一个运行着的container就叫task。

Swarm收到用户提交的service后,就会在node上安排container运行,以满足service的要求。manager node要求worker node运行一个container,就叫发送一个task给worker node

可见,task是swarm内部概念,一个task对应一个container

如图,该service希望运行3个nginx, 因此swarm manager对应的运行了三个task,即启动了三个nginx container:

scheduling

swarm管理container的生存状态,负责启停container的整套逻辑,叫做scheduling。

因此,整体swarm流程为:

  • 1. 用户提交service。
  • 2. swarm根据service开始scheduling。
  • 3. scheduling过程中,会安排worker node执行task。


发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

About Me

一位程序员,会弹吉他,喜欢读诗。
有一颗感恩的心,一位美丽的妻子,两个可爱的女儿
mail: geraldlee0825@gmail.com
github: https://github.com/lisuxiaoqi
medium: https://medium.com/@geraldlee0825