Docker Swarm
初始化节点:docker swarm init
加入节点:docker swarm join
# 获取令牌
docker swarm join-token manager # leader
docker swarm join-token worker # worker
节点信息:
Raft协议
保证大多数节点存活才可使用,只要>1就可以,集群至少大于3台
测试(双主双从):
1.docker-1宕机,另一个主节点也不可用
2.docker swarm leave
节点离开集群
3.集群中的worker节点无法使用manager命令,管理工作一律由manager主节点执行
注:至少保证1台管理节点存活
docker service --help
灰度发布(金丝雀发布)
docker run # 容器启动,不具备扩缩容功能
docker service # 以服务的形式发布,可以扩缩容,滚动更新
当单个Nginx服务负载较大时,需增加3个服务
docker service update --replicas 3 mynginx
==只要是一个服务,在集群中的任意一个节点都可以访问,服务可以由多个副本动态扩缩容来实现高可用==
移除服务:
docker service rm [服务名]
小结
Swarm:集群的管理和编号
Node:docker节点,多个节点组成一个网络集群(分为管理和工作者)
Service:服务,可以在管理节点或工作节点运行(compose的核心)
Task:容器中的命令(细节任务)
service运行模式
--mode string # default "replicated" 默认运行于副本节点
docker service create --mode replicated --name test01 centos:7.6 # 运行在副本(默认)
docker service create --mode global --name test01 centos:7.6 # 全局节点运行
网络模式 PublishMode: ingress
- Swarm
- Overlay
- ingress:Overlay的特殊模式,负载均衡(IPVS VIP)
评论 (0)