看完上一遍文章的——docker swarm搭建之阿里云服务器实战(一)
生产环境进阶
一、自动锁定
Docker Swarm 开启自动锁定功能主要是为了增强集群的安全性。当启用自动锁定功能时,Swarm 管理节点会在启动或重启后要求提供一个解锁密钥(也称为令牌),以确保只有授权用户才能访问和操作集群。这种机制能够有效防止未经授权的访问,即使有人物理上获得了对运行管理节点服务器的访问权限,也无法轻易接管 Swarm 集群。
swarm 开启了一种集群自动锁定功能,为 manager 间的通信启用了 TLS 加密
自动锁定的主要原因包括:
-
提高安全性:通过强制使用解锁密钥来保护 Swarm 集群免受未授权访问。这增加了额外的安全层,减少了潜在的安全风险。
-
防止意外变更:在没有正确的解锁密钥的情况下,即使是合法的管理员也无法随意修改 Swarm 集群的状态。这有助于避免因误操作导致的服务中断或其他问题。
-
数据保护:如果管理节点被攻击者获取控制权,他们将无法直接读取或篡改 Swarm 的内部状态(例如网络配置、服务定义等),除非他们拥有解锁密钥。
1. 查看
# 执行命令
docker info
发现:Autolock Managers:false
结果如下图所示,则说明自动锁定未开启
2. 开启
在服务器1中执行
# 方式一:在搭建集群时就开启
# 方式二:在搭建完集群之后开启
docker swarm update --autolock=true
到此,就开启成功了!找个记事本保存生成的key
【虽然在docker的swarm管理端启动时可以通过命令docker swarm unlock-key
再次查询出如下图所示。】
建议永久保存一下
注:
- 开启成功后,当docker重启之后,需要执行如下命令来 解锁 docker swarm
- 如果没有报错,并且docker swarm的管理者都挂掉了,那么恭喜你重新搭建docker swarm即可,原来的找不回来了。
二、升级于降级
以下操作均在管理节点执行
-
查看当前的所有node节点
docker node ls
-
将工作节点升级为管理节点
docker node promote [升级的节点ID]
-
将管理节点降级为工作节点
docker node demote [降级的节点ID]
三、docker swarm 的ca证书过期
默认的过期时间时90天,在其即将过期时,可以通过如下命令,来平滑的生产新的ca证书
docker swarm ca --rotate
查看证书还有多久过期
docker info | grep "Expiry Duration"
四、docker创建服务
1. 提前加载镜像
在创建服务时,尽量去对应服务器中先下载好对应的镜像,要不然创建服务时可能会失败
2. 修改task备份【扩容】
仅仅针对副本模式下的扩容,全局模式下是不行的
# 方法一:
docker service update --replicas [个数] [服务name]
# 方法二:
docker service scale [服务name]=[个数]
一个虚拟机可以有多个节点,但这多个节点中只有一个节点属于激活状态,一个节点上又可以有多个任务
3. 暂停扩容
可以先查看docker node update --help
可以看到–availability有三个参数active【激活】、pause【暂停】、drain【排除】
当你进行task扩容时,如果不想往其中某一个服务器中扩容,可以使用如下命令先暂停该服务器的节点【暂停时不会影响该服务区原有节点的运行,只是不允许往该节点进行task扩容】
docker node update --availability pause [要暂停的服务器主机名]
注:
- pause 只会影响扩容,不用影响缩容
- drain 可以将某个节点上的所有任务全部移除,并将移除的任务在扩容到其他节点中,并且扩容后任务的name仍为原来的名称。
- active 当将
drain状态
- --变为–>active状态
时,该节点原有的task恢复工作,而之前扩容的任务全部shutdown。
4. 镜像版本改变与回滚
镜像版本改变
docker service update --image [镜像名称]:[版本号] [服务名称]
镜像版本回滚
docker service update --rollback [服务名称]
5.全部模式与副本模式
5.1 全局模式
全局模式,即golobal模式。该模式下,全局有几个节点,就会创建几个副本
该模式下创建的副本,会有一个特性,就是当你再次增加节点时,新增的节点会在生产时就带着全局模式下创建的副本
docker service create --name toms --mode global -p 8080:8080 tomcat:8.5.0
5.1 副本模式
副本模式,即replicated模式。该模式下,指定有几个节点,就会创建几个副本
docker service create --name toms --replicas 6 -p 8080:8080 tomcat:8.5.0
五、docker swarm的overlay网络