- 用户可通过
docker node promote
将一个节点提升为管理节点;也可以通过docker node demote
将一个管理节点降级为工作节点。
Swarm核心概念:
- 服务(service):服务是为了支持编排所提出的概念,它是一系列复杂容器环境相互协作的统称。一个服务的声明包含容器的启动方式、副本数、环境变量、存储、配置、网络等一系列配置。用户用过Swarm将声明的服务实现。
服务分为全局服务和副本服务:
全局服务:每个工作节点都会运行一个任务
副本服务:按照指定副本数在集群中调度
-
任务:集群中最小的调度单位,即一个运行的应用容器。
-
服务外部访问:Swarm中支持入口负载均衡的映射模式。该模式每个服务都会被分配一个公开端口,该端口在集群中任意节点都可以访问到,并被保留给该服务。
搭建Swarm集群:
-
Docker版本大于1.12,推荐最新稳定版
-
主机需要开放2377、4789、7946端口
原本我应该通过3个管理节点,若干工作节点来搭建集群,但是原谅我的本的性能,所以只能搭建一管理节点二工作节点的集群,但是并不妨碍讲解。
第一步:主备三台装有Docker引擎的主机,这点不说了,Docker搭建可以看我其他文章有这个。
第二步:初始化集群(1.12版本后已经默认集成到Docker中)
-
在管理节点上,通过以下命令初始化集群
-
如果多网卡需要加–advertise-addr参数指定网卡
docker swarm init --advertise-addr 192.168.10.3
- 节点加入集群需要用到以下信息
Swarm initialized: current node (hgya55eyardntljupfmpxsw3s) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-457a1eursgbfc5m6lnxz224w6izmsdq82cv8rwfnj8ac6eujhb-5ph3idc72q66tpbaaic5bc6k7 192.168.10.3:2377
To add a manager to this swarm, run ‘docker swarm join-token manager’ and follow the instructions.
第三步:加入工作节点到集群(两个工作节点都要加入)
docker swarm join --token SWMTKN-1-457a1eursgbfc5m6lnxz224w6izmsdq82cv8rwfnj8ac6eujhb-5ph3idc72q66tpbaaic5bc6k7 192.168.10.3:2377
第四步***:如果加入管理节点到集群(如果你想有多个管理节点看这步,单节点跳过即可)
- 在管理节点上运行以下命令,然后想成为管理节点的主机上输入显示的结果即可
docker swarm join-token manager
第五步:查看节点
docker node ls
- 可查看所有节点,带星号为管理节点
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
h55mmpjvnd3uh1jrkopuas400 centos7 Ready Active 20.10.7
hgya55eyardntljupfmpxsw3s * centos7 Ready Active Leader 20.10.7
y3ymp2sis7xwezzuhyhhy4h64 centos7 Ready Active 20.10.7
-
通过
docker info
可以查看集群信息,内容太多就不复制了。 -
如果想看的更明显,可以将主机名改成节点名,我忘了。。。
-
到此,一个集群算搭建完成。
使用Swarm:
Swarm中部署服务通常用两种方式:
一.通过docker service命令创建
- 通过
docker service
命令可以查看命令用法:
docker service
Usage: docker service COMMAND
Manage services
Commands:
create Create a new service
inspect Display detailed information on one or more services
logs Fetch the logs of a service or task
ls List services
ps List the tasks of one or more services
rm Remove one or more services
rollback Revert changes to a service’s configuration
scale Scale one or multiple replicated services
update Update a service
Run ‘docker service COMMAND --help’ for more information on a command.
- 创建一个服务:
docker service create --replicas 1 --name nginx nginx:1.16.1
- 查看服务
docker service ls
- 删除服务
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
1347487)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!