7.3 Service的创建维护和水平扩展

创建一个service

在swarm模式下,基本上就不会使用docker run了

# swarm-manager节点
docker service create --name busybox busybox /bin/sh -c "while true;do sleep 3600;done"

查看service列表

[vagrant@swarm-manager ~]$ docker service ls
IDNAMEMODEREPLICASIMAGEPORTS
426kwqf7gxifbusyboxreplicated1/1busybox:latest
  • replicated 表示此服务可以水平扩展
  • 1/1 分母表示scale的数量,分子表示running的数量

水平扩展service

# 水平扩展为5个
docker service scale busybox=5

再次查看service列表

[vagrant@swarm-manager ~]$ docker service ls
IDNAMEMODEREPLICASIMAGEPORTS
426kwqf7gxifbusyboxreplicated5/5busybox:latest

查看service的分布

docker service ps busybox
IDNAMEIMAGENODEDESIRED STATECURRENT STATEERRORPORTS
gf76bj8oe9u7busybox.1busybox:latestswarm-managerRunningRunning 9 minutes ago
5htg690swaw2busybox.2busybox:latestswarm-work2RunningRunning about a minute ago
b6v2qfmke4hubusybox.3busybox:latestswarm-managerRunningRunning about a minute ago
ywyt6d4pf918busybox.4busybox:latestswarm-work1RunningRunning about a minute ago
nutiiyw70rz2busybox.5busybox:latestswarm-work2RunningRunning about a minute ago

模拟容器down掉

# swarm-work2 节点
docker container stop fc23134c1f30
fc23134c1f30

然后我们就可以看出scale会自动恢复为5

[vagrant@swarm-manager ~]$ docker service ps busybox
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
gf76bj8oe9u7 busybox.1 busybox:latest swarm-manager Running Running 34 minutes ago
24boc8ooo2wd busybox.2 busybox:latest swarm-work1 Ready Ready less than a second ago
5htg690swaw2 \_ busybox.2 busybox:latest swarm-work2 Shutdown Failed less than a second ago "task: non-zero exit (137)"
b6v2qfmke4hu busybox.3 busybox:latest swarm-manager Running Running 27 minutes ago
ywyt6d4pf918 busybox.4 busybox:latest swarm-work1 Running Running 27 minutes ago
nutiiyw70rz2 busybox.5 busybox:latest swarm-work2 Running Running 27 minutes ago
[vagrant@swarm-manager ~]$ docker service ps busybox
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
gf76bj8oe9u7 busybox.1 busybox:latest swarm-manager Running Running 34 minutes ago
24boc8ooo2wd busybox.2 busybox:latest swarm-work1 Running Running 8 seconds ago
5htg690swaw2 \_ busybox.2 busybox:latest swarm-work2 Shutdown Failed 13 seconds ago "task: non-zero exit (137)"
b6v2qfmke4hu busybox.3 busybox:latest swarm-manager Running Running 27 minutes ago
ywyt6d4pf918 busybox.4 busybox:latest swarm-work1 Running Running 27 minutes ago
nutiiyw70rz2 busybox.5 busybox:latest swarm-work2 Running Running 27 minutes ago

这就是swarm的容器自动恢复机制了

service移除

docker service rm busybox

从转行到入门,记录我的自学成长之路

62 声望
19 粉丝
0 条评论
推荐阅读
9.6 使用Tectonic在本地搭建多节点K8S集群
使用Tectonic搭建K8S集群 {代码...} 有需要的可以使用Kubeadm:[链接]获取集群列表 {代码...} 如果我们想通过kubectl管理多个集群,可以将多个集群的config文件合并到~/.kube/config文件中关于config合并的规则:...

思过崖阅读 1.8k

Docker学习:Image的本地存储结构
在使用Docker时候,针对镜像的操作一般就是docker pull,docker build,docker commit(刚开始接触Docker的时候,还不会Dockerfile,经常使用这个命令,但是经历了一次血的教训,已经放弃这个命令很久)这些操作...

backbp4阅读 9.7k评论 3

使用docker快速搭建xssPlatform测试平台实践
笔者之前给一些开发团队多次做Web安全开发培训,为了让培训的学员能够理解XSS原理和XSS的危害,将xssPlatform进行了更新,之前一直放在GitHub中;发现关注的人越来越多,很多人在安装的过程中遇到问题不知道怎么...

汤青松1阅读 25.7k

利用Docker部署管理LDAP及其初次使用
前言:本周主要写了gitlabWebhook转github的项目,总体上没有遇到什么大问题,这周接触到了LDAP,于是就花时间实际操作了解了一下。

李明5阅读 865

BI系统打包Docker镜像及部署的技术难度和实现
随着容器化技术盛行,Docker在前端领域也有着越来越广泛的应用;传统的前端部署方式需要我们将项目打包生成一系列的静态文件,然后上传到服务器,配置nginx文件;如果我们使用容器化部署,将部署操作都命令化,集...

葡萄城技术团队2阅读 8.3k

Kubernetes v1.26 新特性一览
我每期的 「k8s生态周报」都有一个叫上游进展的部分,所以很多值得关注的内容在之前的文章中已经发过了。这篇中我会再额外介绍一些之前未涵盖的,和之前介绍过的值得关注的内容。

张晋涛2阅读 622评论 1

封面图
深入剖析容器网络和 iptables
Docker 能为我们提供很强大和灵活的网络能力,很大程度上要归功于与 iptables 的结合。在使用时,你可能没有太关注到 iptables 的作用,这是因为 Docker 已经帮我们自动完成了相关的配置。

张晋涛3阅读 1.3k

封面图

从转行到入门,记录我的自学成长之路

62 声望
19 粉丝
宣传栏