10、docke swarm安装和使用

简介
    Swarm 在 Docker 1.12 版本之前属于一个独立的项目,在 Docker 1.12 版本发布之后,该项目合并到了 Docker 中,成为 Docker 的一个子命令。目前,Swarm 是 Docker 社区提供的唯一一个原生支持 Docker 集群管理的工具。它可以把多个 Docker 主机组成的系统转换为单一的虚拟 Docker 主机,使得容器可以组成跨主机的子网网络。
Docker Swarm 是一个为 IT 运维团队提供集群和调度能力的编排工具。用户可以把集群中所有 Docker Engine 整合进一个「虚拟 Engine」的资源池,通过执行命令与单一的主 Swarm 进行沟通,而不必分别和每个 Docker Engine 沟通。在灵活的调度策略下,IT 团队可以更好地管理可用的主机资源,保证应用容器的高效运行。

1、基本概念
    节点--docker 节点 分为工作(worker)节点和管理(master)节点 ,管理节点用于swarm集群管理,工作节点是任务执行节点
    服务和任务--任务是swarm中的最小调度单元,目前就是一个简单的容器,服务是指一组任务的集合,它定义了任务的属性

2、创建swarm集群
    2.1、创建管理节点
        docker swarm init
        执行成功后会输出docker swarm join --token ... 命令,在其他机器上执行这个命令,就可以让这台机器加入这个集群

        默认管理节点也是工作节点,可以使用以下命令禁止集群上的服务部署到管理节点,保证管路节点只做管理角色
        docker node update --availability drain [naem|ID]

    2.2、创建工作节点
        在工作节点机器上执行上述输出的命令,执行成功后,工作节点就加入成功了,如果忘记上述命令可以在管理节点执行 docker swarm join-token worker 命令获得

    2.3、创建备份管理节点
        在主管理节点即第一次创建集群的机器上执行docker swarm join-token manager
        会输出创建管理节点的命令,在要创建管理集群的节点上执行上述命令

    2.4、查看集群状态
        docker node ls

    2.5、退出集群
        docker swarm leave(在工作节点运行)
        注意命令执行后立即在管理节点执行docker node ls 可以看到状态依然是Ready,需要等待一段时间状态才会变成DOWN
        如果要删除管理节点,首先要在管理节点将要删除的管理节点降级成工作节点即使用
        docker node demote [ID|name] ,再在已经降级为工作节点上执行dokcer swarm leave,如果使用docker swarm leave --force直接删除一个管理节点将会使集群崩溃

        注意要退出集群时最好将此节点的状态先置为drain,使用如下命令
        docker node update --availability drain [naem|ID]
        使用上述命令后此节点上所有容器将迁移到其他工作节点上,
    
    2.6、删除节点
        在管理节点执行 docker node rm [ID|NAME] 删除一个退出集群的节点即状态必须是DOWN

    2.7、升级和降级工作节点
        将工作节点升级成管理节点
        docker node promote [ID|name]
        将管理节点降级为工作节点
        docker node demote [ID|name]

    2.8、调整节点访问属性
        docker node update --availability active [ID|name]
        将节点访问属性置为active, 表明节点可以被被分配任务
        docker node update --availability pause [ID|name]
        将节点访问属性置为pause, 表明节点暂停分配任务,当旧的任务或容器将保持,
        docker node update --availability drain [ID|name]
        将节点访问属性置为drain, 表明节点停止任务分配,并将已运行的任务分配到其他机器上

3、集群服务相关命令
    3.1、查看服务列表
        docker service ls
        
    3.2、查看某个服务的具体信息
        docker service ps [service_name]
        
    3.3、创建一个服务
        docker service create --replicas 3 -p 80:80 --name nginx nginx:1.13.7-alpine
        
    3.4、更新服务参数
        更新端口
            docker service update --publish-rm 80:80 my_web
        删除端口
            docker service update --publish-rm 80:80 my_web
        更新镜像
            docker service update --image redis:3.0.7 redis
        更改所分配的cpu和内存
            docker service update --reserve-cpu 1 --reserve-memory 256m my_nginx
        指定每次更新的容器数量
            --update-parallelism
        指定容器更新的间隔
            --update-delay
        
    3.5、服务回退
        docker service rollback nginx
        
    3.6、查看服务log
        docker service ps nginx
        
    3.7、删除一个镜像
        docker service rm my_web

    3.8、创建群组并配置cpu和内存
        docker service create --name my_nginx --reserve-cpu 2 --reserve-memory 512m --replicas 3 nginx

    3.9、服务伸缩
        docker service scale nginx=5

    3.10、docker swarm web管理工具
        下载protainer镜像
            docker pull portainer/portainer
        启动镜像
            docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v /data/portainer:/data portainer/portainer
        使用浏览器打开页面

        注意
        docker swarm 的命令一般只能在管理节点上执行,但docker swarm leave是可以在工作节点上执行的

    3.11、错误汇总
        1、Error response from daemon: error while validating Root CA Certificate: x509: certificate has expired or is not yet valid
            原因:主机时间不同步导致的
            解决方法:同步主机时间  ntpdate -u ntp.api.bz
            参考
                https://www.cnblogs.com/Peter2014/p/7728762.html
                https://blog.csdn.net/weiyuefei/article/details/71514133

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值