博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用 Label 控制 Service 的位置 - 每天5分钟玩转 Docker 容器技术(106)
阅读量:6007 次
发布时间:2019-06-20

本文共 1464 字,大约阅读时间需要 4 分钟。

hot3.png

上一节我们讨论了 Service 部署的两种模式:global mode 和 replicated mode。无论采用 global mode 还是 replicated mode,副本运行在哪些节点都是由 Swarm 决定的,作为用户我们有没有可能精细控制 Service 的运行位置呢?

答案是:能,使用 label。

逻辑分两步:

  1. 为每个 node 定义 label。

  2. 设置 service 运行在指定 label 的 node 上。

label 可以灵活描述 node 的属性,其形式是 key=value,用户可以任意指定,例如将 swarm-worker1 作为测试环境,为其添加 label env=test

docker node update --label-add env=test swarm-worker1

544.png

对应的,将 swarm-worker2 作为生产环境,添加 label env=prod

docker node update --label-add env=prod swarm-worker2

现在部署 service 到测试环境:

docker service create \      --constraint node.labels.env==test \      --replicas 3 \      --name my_web \      --publish 8080:80 \      httpd

545.png

--constraint node.labels.env==test 限制将 service 部署到 label=test 的 node,即 swarm-worker1。从部署结果看,三个副本全部都运行在 swarm-worker1 上。

可以通过 docker service inspect 查看 --constraint 的设置:

546.png

更新 service,将其迁移到生产环境:

docker service update --constraint-rm node.labels.env==test my_web  docker service update --constraint-add node.labels.env==prod my_web

删除并添加新的 constraint,设置 node.labels.env==prod,最终所有副本都迁移到了 swarm-worker2

547.png

label 还可以跟 global 模式配合起来使用,比如只收集生产环境中容器的日志。

docker service create \       --mode global \       --constraint node.labels.env==prod \       --name logspout \       --mount type=bind,source=/var/run/docker.sock,destination=/var/run/docker.sock \       gliderlabs/logspout

只有 swarm-worker2 节点上才会运行 logspout。

548.png

Label 就讨论到这里,下一节我们学习 Health Check。

书籍:

1.《每天5分钟玩转Docker容器技术》

2.《每天5分钟玩转OpenStack》

转载于:https://my.oschina.net/u/2397560/blog/1590132

你可能感兴趣的文章
端口基础常识大全+常用端口对照
查看>>
kettle界面语言修改成中文后,重启报错
查看>>
nagios安装完后插件里没有check_mysql的解决方法
查看>>
谷歌Chrome开展实验,解决HTTPS混合内容错误
查看>>
全球.COM域名注册量统计:2月增超29万域名
查看>>
11月微博博客日均覆盖数TOP10:网易博客升至第七
查看>>
6月28日全球域名注册商(国际域名)保有量及市场份额
查看>>
Android热修复升级探索——代码修复冷启动方案
查看>>
Dwz做前台页面,Jfinal后台使用前台下载excel【两种解决方案】
查看>>
Android 部分截图分享
查看>>
脚本实现mysql 备份
查看>>
linux 知识点整理,从虚拟机安装到常用开发软件在linux上的安装命令
查看>>
关于WinGate代理服务器的概述
查看>>
socket, nio socket 及nio socket框架MINA总结 (转)
查看>>
R语言笔记
查看>>
linux “洪ping”
查看>>
健康传说网简介
查看>>
学校宿舍的深夜之思考
查看>>
一大型工厂网络规划方案
查看>>
计算机网络之面试常考 转
查看>>