deploy service on swarm
转自:https://www.cnblogs.com/jsonhc/p/7852530.html
swarm集群配置完成后,查看一些基本的信息:
[root@manager1 ~]# docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS manager1 - generic Running tcp://192.168.101.14:2376 v17.09.0-ce work1 - generic Running tcp://192.168.101.15:2376 v17.10.0-ce
查看节点信息:
[root@manager1 ~]# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS 4ecjeeu8273dzsmfta7u6op9t * manager1 Ready Active Leader sn7c5u5wtupgt3qpz22o117hl work1 Ready Active
如果需要更新详细的查看节点信息:
[root@manager1 ~]# docker node inspect --pretty manager1 ID: 4ecjeeu8273dzsmfta7u6op9t Hostname: manager1 Joined at: 2017-11-15 18:28:21.103210247 +0000 utc Status:State: ReadyAvailability: ActiveAddress: 192.168.101.14 Manager Status:Address: 192.168.101.14:2377Raft Status: ReachableLeader: Yes Platform:Operating System: linuxArchitecture: x86_64 Resources:CPUs: 2Memory: 3.686GiB Plugins:Log: awslogs, fluentd, gcplogs, gelf, journald, json-file, logentries, splunk, syslogNetwork: bridge, host, macvlan, null, overlayVolume: local Engine Version: 17.09.0-ce Engine Labels:- provider=generic TLS Info:TrustRoot: -----BEGIN CERTIFICATE----- MIIBazCCARCgAwIBAgIUPDGTCzw2cZelyvysFW+jcF3PcQMwCgYIKoZIzj0EAwIw EzERMA8GA1UEAxMIc3dhcm0tY2EwHhcNMTcxMTE1MTgyMzAwWhcNMzcxMTEwMTgy MzAwWjATMREwDwYDVQQDEwhzd2FybS1jYTBZMBMGByqGSM49AgEGCCqGSM49AwEH A0IABNyMg4cqG1XaXB6g5PbNGxjishle1cPF9t0kn5LbRKwh+IGwDZD2fdbli2bk 9fzVQVWCj3aZzCyyVSFxZ30+cPWjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB Af8EBTADAQH/MB0GA1UdDgQWBBTElfvEWZqpfIfCYCr+Vn6peYGOPDAKBggqhkjO PQQDAgNJADBGAiEAh44+/Ns5T+MwiD49jXmIpr7mz/8qyMEvFDtk55j5eQ0CIQCP HEbLBRkJWxqNs6p5O+emfvIVpFHuy/X8K6tDF7qmiw== -----END CERTIFICATE-----Issuer Subject: MBMxETAPBgNVBAMTCHN3YXJtLWNhIssuer Public Key: MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE3IyDhyobVdpcHqDk9s0bGOKyGV7Vw8X23SSfkttErCH4gbANkPZ91uWLZuT1/NVBVYKPdpnMLLJVIXFnfT5w9Q==
现在利用docker service命令来创建服务:
[root@manager1 ~]# docker service create --name web --replicas 2 nginx oq2jsjc4zhwtpcwqqd2whj701 Since --detach=false was not specified, tasks will be created in the background. In a future release, --detach=false will become the default.
其中的参数:--name表示创建服务的名称,--replicas表示创建的副本数,nginx是镜像
查看创建好的service:
[root@manager1 ~]# docker service ls ID NAME MODE REPLICAS IMAGE PORTS oq2jsjc4zhwt web replicated 2/2 nginx:latest
查看service服务在节点的运行情况:
[root@manager1 ~]# docker service ps web ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS rk7pyq7pr49b web.1 nginx:latest work1 Running Running 7 seconds ago w3orhk7uzvzy web.2 nginx:latest manager1 Running Running 7 seconds ago
如果在创建的过程中出现如下报错:
[root@manager1 ~]# docker service ps web ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS klcan0r46jih web.1 nginx:latest work1 Ready Preparing 3 seconds ago ypx26zy1gp63 \_ web.1 nginx:latest work1 Shutdown Rejected 3 seconds ago "No such image: nginx:latest@s…" dy51asan25pf web.2 nginx:latest manager1 Running Running 18 seconds ago
work1节点上没有相应的镜像,导致启动失败,可能的原因之一:work1节点使用的默认的官方镜像源,所以下载缓慢,导致失败,解决办法:将work1节点配置镜像加速器重启docker服务就行
如果需要详细查看service信息:
[root@manager1 ~]# docker service inspect --pretty webID: oq2jsjc4zhwtpcwqqd2whj701 Name: web Service Mode: ReplicatedReplicas: 2 Placement: UpdateConfig:Parallelism: 1On failure: pauseMonitoring Period: 5sMax failure ratio: 0Update order: stop-first RollbackConfig:Parallelism: 1On failure: pauseMonitoring Period: 5sMax failure ratio: 0Rollback order: stop-first ContainerSpec:Image: nginx:latest@sha256:9fca103a62af6db7f188ac3376c60927db41f88b8d2354bf02d2290a672dc425 Resources: Endpoint Mode: vip
如果需要访问容器提供的服务,需要为容器进行映射端口:
[root@manager1 ~]# docker service update --publish-add 8080:80 web web
使用命令update进行对服务的修改,更新等等操作
[root@manager1 ~]# docker service ps web ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS jzq72hlu434g web.1 nginx:latest work1 Running Running less than a second ago rk7pyq7pr49b \_ web.1 nginx:latest work1 Shutdown Shutdown 1 second ago ys5voif2df7f web.2 nginx:latest manager1 Running Running 2 seconds ago w3orhk7uzvzy \_ web.2 nginx:latest manager1 Shutdown Shutdown 3 seconds ago
[root@manager1 ~]# docker service ls ID NAME MODE REPLICAS IMAGE PORTS oq2jsjc4zhwt web replicated 2/2 nginx:latest *:8080->80/tcp
然后进行访问web服务:
这里创建的服务在节点manager1和worl1上(192.168.101.14、192.168.101.15),不指定为什么创建的service一直没有实现负载均衡,一直只是manager1节点能够提供访问,这个问题等待解决
上面可以看出service由manager1、work1两个节点提供,现在将其中的某一个节点进行下线:
[root@manager1 ~]# docker node update --availability drain work1 work1 [root@manager1 ~]# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS 4ecjeeu8273dzsmfta7u6op9t * manager1 Ready Active Leader sn7c5u5wtupgt3qpz22o117hl work1 Ready Drain
节点的availability的值可以显示节点的状态(active表示活跃在线,drain表示下线不提供服务或者处于维护状态)
将节点wrok1下线后,查看服务的replicas数量:
[root@manager1 ~]# docker service ls ID NAME MODE REPLICAS IMAGE PORTS oq2jsjc4zhwt web replicated 2/2 nginx:latest *:8080->80/tcp
可以看见service web的replicas并没有减少:
[root@manager1 ~]# docker service ps web ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS o0p9zt3su44g web.1 nginx:latest manager1 Running Running about a minute ago jzq72hlu434g \_ web.1 nginx:latest work1 Shutdown Shutdown about a minute ago rk7pyq7pr49b \_ web.1 nginx:latest work1 Shutdown Shutdown 6 minutes ago ys5voif2df7f web.2 nginx:latest manager1 Running Running 6 minutes ago w3orhk7uzvzy \_ web.2 nginx:latest manager1 Shutdown Shutdown 6 minutes ago
而提供服务的节点由之前的manager1和worlk1共同提供变成了只由节点manager1提供:
现在将work1节点进行更改为active:
[root@manager1 ~]# docker node update --availability active work1 work1 [root@manager1 ~]# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS 4ecjeeu8273dzsmfta7u6op9t * manager1 Ready Active Leader sn7c5u5wtupgt3qpz22o117hl work1 Ready Active
当work1节点上线后,但是work1并没有抢回提供服务:
[root@manager1 ~]# docker service ps web ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS o0p9zt3su44g web.1 nginx:latest manager1 Running Running 4 minutes ago jzq72hlu434g \_ web.1 nginx:latest work1 Shutdown Shutdown 4 minutes ago rk7pyq7pr49b \_ web.1 nginx:latest work1 Shutdown Shutdown 9 minutes ago ys5voif2df7f web.2 nginx:latest manager1 Running Running 9 minutes ago w3orhk7uzvzy \_ web.2 nginx:latest manager1 Shutdown Shutdown 9 minutes ago
现在将service的replicas进行伸缩或者扩展,这里将replicas增加到3(现在数量为2)
[root@manager1 ~]# docker service scale web=3 web scaled to 3
[root@manager1 ~]# docker service ps web ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS o0p9zt3su44g web.1 nginx:latest manager1 Running Running 6 minutes ago jzq72hlu434g \_ web.1 nginx:latest work1 Shutdown Shutdown 6 minutes ago rk7pyq7pr49b \_ web.1 nginx:latest work1 Shutdown Shutdown 11 minutes ago ys5voif2df7f web.2 nginx:latest manager1 Running Running 11 minutes ago w3orhk7uzvzy \_ web.2 nginx:latest manager1 Shutdown Shutdown 11 minutes ago g0liotj1z9j6 web.3 nginx:latest work1 Running Running 1 second ago
可以看见work1节点又开始为web提供服务了
删除掉上面创建的服务,重新创建新的服务,使用--publish:
[root@manager1 ~]# docker service rm web web
转载于:https://www.cnblogs.com/maohuidong/p/9914823.html
deploy service on swarm相关推荐
- docker探索-使用docker service管理swarm(十一 )
本文转自:https://www.cnblogs.com/atuotuo/p/6265541.html 1.创建一个 Docker service $ docker service create -- ...
- re.containerbase.startinternal 子容器启动失败_Python项目容器化实践(二) Docker Machine和Docker Swarm...
前言 这篇文章介绍Docker生态中的常被提到的Engine.Machine和Swarm,大家以了解为主,工作需要再深入. Engine Docker Engine其实就是我们常说的「Docker」, ...
- Kubernetes(7) Service Network (advanced)
从上一章节我们做了一个Service提供服务给单节点Redis数据库的实验.在这一章我们要深入Service中去,来弄清Service的工作原理. 1 Kubernetes 如何向客户端提供网络功能 ...
- SAP创建Web Service以及用ABAP调用
如果运行 soamanager 打不开,网页显示 devaix .zhongpin.com ,打开 C :\WINDOWS\system32\drivers\etc, 用记事本打开 hosts 文件 ...
- kyma上service catalog的安装部署方法
Service catalog: 在cluster上安装Service catalog之前,首先使用下列命令确保该cluster可以使用helm: kubectl create -f https:// ...
- docker swarm的应用----docker集群的构建
一.docker安装 这里我们安装docker-ce 的18.03版本 yum -y remove docker 删除原有版本 #安装依赖包 [root@Docker ~]# yum -y i ...
- oracle线程阻塞_Oracle Service Bus –线程阻塞案例研究
oracle线程阻塞 本案例研究描述了在AIX 6.1和IBM Java VM 1.6上运行的Oracle Service Bus 11g遇到的线程阻塞问题的完整根本原因分析过程. 本文也是您提高线程 ...
- Oracle Service Bus –线程阻塞案例研究
本案例研究描述了在AIX 6.1和IBM Java VM 1.6上运行的Oracle Service Bus 11g遇到的线程阻塞问题的完整根本原因分析过程. 本文也是您提高线程转储分析技能的绝佳机会 ...
- 一步步实现SDDC-vSphere Auto Deploy的妙用
实验摘要: 1>vSphere Auto Deploy [难度★★★★复杂度★★★★★] 正文: 今天,我将向大家演示,如何利用vSphere Auto Deploy,实现数据中心内服务器虚拟化 ...
最新文章
- java集成钉钉sdk_JAVA maven项目使用钉钉SDK获取token、用户
- linux c++ 得到 指定进程名 线程数
- Web socket广播
- python实现汉诺塔程序
- 想要高清壁纸,高图桌面壁纸网站值得收藏!
- werkzeug LocalProxy
- 零基础转行学习前端,需要学习哪些技术才可以找到工作吗?
- 札记 - PHP/JS/jQuery/MySQL/CSS/正则/Apache
- Windows 下Redis客户端可视化工具-Redis Desktop Manager
- zmud之汉字转换为数字
- linux怎么查服务器的ip地址查询,Linux操作系统查看当前服务器网卡的IP地址
- mybatis-plus 属性为空时判断问题
- 【生物信息学】正常和突变的蛋白质结构可视化?构建蛋白结构模型,常见的4种构建蛋白模型方法
- 火车头定制规则php什么意思,火车头WordPress发布规则写法教程
- 看服务器被入侵如何排查?如何防止服务器被入侵?
- 捉迷藏之二-第10届蓝桥杯Scratch国赛真题第6题程序2
- The Shawshank Redemption-14
- 第二部分 : 简单句的核心变化(时态)
- goldendict使用 添加 .blg 添加字典
- usb的device模式hid配置错误点