摘要:
想象一下这个场景,你有一个服务,想要最好的运行状态,必须需要一定的CPU和内存的数量,这样的场景,如何在service中进行设置? 也就是说,为service设置一个cpu和内存的值,swarm集群中的节点,只有满足这个要求的才能运行这个task。 参数 设置的方法,非常的简单,在创建service 阅读全文
摘要:
将swarm中的service端口暴露出去,供集群外的服务进行访问的 2 种方法: 1、路由网格 也就是在docker create service时,使用下面的参数 --publish published=<published_port>,target=<service_port> 2、将task 阅读全文
摘要:
最近今天,在研究docker swarm中服务的部署,发现一个非常奇怪的现象······ 通过docker service create命令创建service,比如: docker service create \ --with-registry-auth \ --name=nginx \ --re 阅读全文
摘要:
0、导语 今天的文章呢,主要为你解决3个问题: 1、如何为service中运行的容器设置环境变量? 2、如何指定容器以什么用户执行? 3、容器的工作目录(workdir)? 下面咱们一个一个的来看。 1、如何设置容器的环境变量? 非常的简单,在创建service的时候,通过--env指定变量和变量值 阅读全文
摘要:
今天要说的这个,其实非常的简单,就是说······ 如果你现在已经在swarm集群中,部署了一个service,这个service对外暴露的端口号是8080,怎么将它修改为80端口? 比如,在集群中有个nginx的service,对外提供服务的端口是8080 [root@nccztsjb-node- 阅读全文
摘要:
最近在部署service到swarm集群的时候,出现了下列的报错: [root@nccztsjb-node-01 ~]# docker service create \ > --name=nginx \ > --publish published=8080,target=80 \ > 172.20. 阅读全文
摘要:
默认情况下,在swarm中部署一个service,会根据镜像中启动命令来启动容器,如果要进行测试也好,修改、调试也好,如何指定service中容器的启动命令? 方法非常的简单。 1、比如先查看某个镜像的启动命令 以alpine镜像为例 docker inspect d4deec2c521c Entr 阅读全文
摘要:
如标题所示,如何将service中task,指定运行在具有某个特殊的节点上,比如,存储特别大,有GPU的? 方法,非常的简单。 1、节点增加标签 首先,给特殊的主机增加label [root@nccztsjb-node-01 ~]# docker node ls ID HOSTNAME STATUS 阅读全文
摘要:
对于swarm集群来说,通过节点的标签,可以对节点进行分组。 与此同时,更加重要的是,在部署service的时候,可以定向调度到具有某个标签的node上。 没错,和k8s中节点增加标签的作用是类似的。 那么,在swarm中如何来给节点增加标签? 1、登录manager节点 2、查看集群节点 [roo 阅读全文
摘要:
如果一个swarm集群中,你有多个manager节点,比如3个,你的目的是什么? 那还用说吗,当然是一个manager挂掉之后,进行故障的转移了,但是你经历过这个转移吗? 如果没有,跟着下面的过程,模拟一次。 首先,在集群中有3个manager节点 [root@nccztsjb-node-01 ~] 阅读全文
摘要:
Docker官方建议:每个swarm集群有 3个 或 5个 管理节点来实现高可用性。 因为,集群模式管理节点使用Raft共享数据,所以,必须有奇数个管理节点。只要有超过一半的管理节点可用,集群就可以继续工作。 阅读全文
摘要:
当你使用 docker swarm join 命令,将一个节点加入到swarm集群时,在这条命令的背后,实际上发生了哪些事情? 这个问题,你能够立马回答出来,如果你还不能100%的,立刻马上,回答出来,继续往下看: 在执行这个命令,将一个docker引擎加入到swarm集群时,主要做了这么几件事情: 阅读全文
摘要:
对于一个节点来说,如果想要加入swarm集群,需要一个加密的token. 更加重要的是,对于manger节点和worker节点使用的token是不同的。 节点,只有在加入swarm集群的时候,使用join-token。在加入集群之后,如果token发生了变化,对于节点是不会有影响。 更新token的 阅读全文
摘要:
当在一个swarm集群中创建service的时候,会创建一个或者多个task,那task的运行状态是至关重要的。 那么,如何才能知道service中,各个task的状态呢? 方法非常的简单。 只需要执行下面的命令: docker service ps <service_name> 通过CURRENT 阅读全文
摘要:
这个问题的答案,非常的简单,2种: replicated(副本) global(全局) 这2种类型之间,也非常的好区分: replicated 副本类型的service,就是你需要部署几个副本,指定一下就可以有几个task在swarm集群中运行 global 全局类型的service,类似于k8s的 阅读全文
摘要:
在刚创建好的一个docker swarm集群中,manager节点虽然具备管理的角色,但是,还是允许task在上面运行的,那么如果就让manager节点,干一个活,就是管理,调度的任务,不让其执行任何的具体任务,不干活,该如何设置? 下面,先来看下,swarm中集群的节点信息: [root@nccz 阅读全文
摘要:
尝试将某个worker节点移除swarm集群,可是,报错了: [root@nccztsjb-node-07 ~]# docker node rm cw5bome4a9g1rzelivxejd31c Error response from daemon: rpc error: code = Faile 阅读全文
摘要:
将manager降级为worker 这个问题,说来挺有意思的,我在集群里面创建了2个manager,然后,模拟将第2个manager节点,从集群中移出去,结果发现报错了: [root@nccztsjb-node-07 ~]# docker node rm cw5bome4a9g1rzelivxejd 阅读全文
摘要:
驱逐节点?这是要干什么? 我问你,如果你的swarm集群中的一个节点,由于硬件,比如内存条故障了,要检修,你怎么办?强行将节点关机,你不担心swarm集群直接异常,而永久无法修复吗? 所以,这些粗暴的方法,或许并不适合,所以,看个更加温和的方法—drain 也就是,将swarm集群中的节点,先驱逐集 阅读全文
摘要:
滚动升级,一定听过,就比如说,现在有个服务运行了多个实例,想要对这个服务进行升级(比如:更换镜像),应该怎么弄呢? 接下来的部分,咱们一起来看下。 在本文中,做滚动升级的一个场景是: 部署一个service,这个service使用 redis 3.0.6镜像,然后使用 redis 3.0.7版本的镜 阅读全文