Docker Swarm集群管理简介(2)

第三个步骤,Swarm创建并初始化API监听服务模块。从功能的角度来讲,可以将该模块抽象为Swarm Server。需要说明的是:虽然Swarm Server完全兼容Docker的API,但是有不少Docker的命令目前是不支持的,毕竟管理Docker集群与管理单独的Docker会有一些区别。当Swarm Server被初始化并完成监听之后,用户即可以通过Docker Client向Swarm发送Docker集群的管理请求。

Swarm的swarm manage接收并处理Docker集群的管理请求,即是Swarm内部多个模块协同合作的结果。请求入口为Swarm Server,处理引擎为Scheduler,节点信息依靠Disocovery。

3.3 swarm join

Swarm的swarm join命令用于将Docker Node添加至Swarm管理的Docker集群中。从这点也可以看出swarm join命令的执行位于Docker Node,因此在Docker Node上运行该命令,首先需要在Docker Node上安装Swarm,由于该Swarm只会执行swarm join命令,故可以将其当成Docker Node上用于注册的agent模块。

功能而言,swarm join可以认为是完成Docker Node在Swarm节点处的注册(register)工作,以便Swarm在执行swarm manage时可以发现该Docker Node。然而,上文提及的5种discovery模式中,并非每种模式都支持swarm join命令。不支持的discovery的模式有Node Discovery与File Discovery。

Docker Node上swarm join执行之后,标志着Docker Node向Swarm注册,请求加入Swarm管理的Docker集群中。Swarm通过注册信息,发现Docker Node,并获取Docker Node的状态以及具体信息,以便处理Docker请求时作为调度依据。

3.4 swarm list

Swarm中的swarm list命令用以列举Docker集群中的Docker Node。

Docker Node的信息均来源于Swarm节点上注册的Docker Node。而一个Docker Node在Swarm节点上注册,仅仅是注册了Docker Node的IP地址以及Docker监听的端口号。

使用swarm list命令时,需要指定discovery的类型,类型包括:token、etcd、file、zk以及<ip>。而swarm list并未罗列Docker集群的动态信息,比如Docker Node真实的运行状态,或者Docker Node在Docker集群中扮演的角色信息。

4.总结

Swarm的架构以及命令并没有很复杂,同时也为希望管理Docker集群的Docker爱好者降低了学习和使用门槛。

俗话说得好,没有一种一劳永逸的工具,有效的管理Docker集群同样也是如此。缺乏场景来谈论Swarm的价值,意义并不会很大。相反,探索和挖掘Swarm的特点与功能,并为Docker集群的管理提供一种可选的方案,是Docker爱好者更应该参与的事。

更多Docker相关教程见以下内容: 

Docker安装应用(CentOS 6.5_x64)  

Ubuntu 16.04 服务器上配置使用 Docker   

Ubuntu 15.04下安装Docker   

Docker 安装实例  

Docker 创建基础镜像   

在 Ubuntu 15.04 上如何安装Docker及基本用法  

Ubuntu 16.04上Docker使用手记  

使用Docker分分钟启动常用应用   

Ubuntu 16.04下Docker修改配置文件不生效解决办法   

Docker 的详细介绍请点这里
Docker 的下载地址请点这里

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/1733a49bf6e75f58d33d7d959873173b.html