借助容器技术,可以方便的在不同环境下部署服务,保证服务环境的一致性。docker swarm这个东西,可以方便的对容器进行编排管理。

docker swarm集群中,有manager节点与worker节点。

在工作项目中,需要在此集群新增一台机器,用于部署刚上线的服务。对于新上线的服务,需要先在这台机器上运行一段时间。稳定一段时间之后,再去除此限制,服务可以随机部署到一台生产的机器上。

首先介绍一下在一个集群中新增work机器的操作:

登录docker swarm的一个管理节点,运行:

[root@machine01 swarm]# docker swarm join-token worker
To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN--5krx9k52xqyv5qypt22rkmclbb0mxqbv49fvw7ru2iby7zmm4b-2xw3h4rjoz9jn7h5gjdxt3sdv 192.168.20.155:

运行后得到添加worker节点的命令,再登录到新的机器上,运行上个命令产生的添加机器命令,即可完成docker swarm集群新增机器的操作。

新增节点完成之后,设置此节点标签如下:

docker node update --label-add application=generic --label-add staging=true machine01
docker node update --label-add application=generic --label-add staging=true machine01

机器新增之后,介绍一下如何限制服务启动时选择的机器,有两种方式:

方式一:

通过 --constraint参数设定启动微服务的节点标签,如果需要限定某个微服务只能启动在camel机器中:

--constraint node.labels.application==generic,如果只有新增的机器的application标签值为generic,那么通过此限制,微服务启动时,只会在新增的机器上启动。

方式二:

通过--placement-pref 标签:

如果application标签中,有些机器的值为generic,有些是special。但是staging标签只有新的这台机器使用,那么通过如下的启动参数:

--placement-pref spread=application --placement-pref spread=staging,就可以限制启动在新的机器,如果新的机器挂了,那么微服务就会启动在别的机器。

因为此命令只是表示优先选择符合条件的机器,如果找不到,那么启动此微服务的时候等于没有限制。官网描述如下:

最新文章

  1. iOS url中文编码
  2. 云虚拟主机开源 DedeCMS 安装指南
  3. Unity3D入门
  4. Ubuntu 安装 mysql 并修改数据库目录
  5. nginx学习(1):编译、安装、启动
  6. YII Framework学习教程-YII的国际化
  7. 二维码zxing源码分析(二)decode部分
  8. Linux时间函数
  9. XHProf 初探
  10. tableview选择的时候不要cell的高亮显示样式
  11. 国产数据库-KingbaseES在linux下的安装
  12. 关于SQL的一些小知识
  13. 团队作业10--事后分析(Beta版本)
  14. Httpd2.2常见配置及功能
  15. c# IPC实现本机进程之间的通信
  16. PYTHON使用入门
  17. Java笔记(十四) 并发基础知识
  18. Msfvenom学习总结
  19. 程序的流程控制-分支结构 if
  20. 15个优秀的开源项目,让你轻松应对Android开发

热门文章

  1. 你想知道吗?come
  2. 【简书】在阿里云自带的CentOS + LAMP环境下部署一个Laravel项目
  3. robotframework之滚动条
  4. 自定义事件——Event和CustomEvent
  5. C#用反射实现两个类的对象之间相同属性的值的复制
  6. 【转】/etc/rc.d/rc与/etc/rc.d/init.d的关系介绍
  7. Oracle 动态SQL 注意细节 ORA-00911: 无效字符
  8. webAPP如何实现移动端拍照上传(Vue组件示例)?
  9. declaration may not appear after executable statement in block
  10. Centos 7 64位 minimal 最小化安装的系统中静默安装oracle 11g r2