zoukankan      html  css  js  c++  java
  • 05 Docker集群/基础设施

    05 Docker集群/基础设施 - DevOps之路

    文章Github地址,欢迎starthttps://github.com/li-keli/DevOps-WiKi

    Docker的集群目前主流的方案:

    Docker Swarm 集群

    是用Swarm集群来部署一个无状态的服务:

    目前有三台物理机node01、node02、node03,在node01上初始化Swarm:

    docker swarm init --advertise-addr 192.168.0.10 # 你的IP地址
    

    这个时候会创建一个swarm的manage节点,并输出一段join的命令样例。在其他的docker机器上运行上面输出的docker swarm join命令就可以加入集群了。

    docker swarm join 
    --token SWMTKN-1-2apg79ozshm0x9hgqgm7v3qo4ks6qcgqzqir5z03g6y90qolf8-***************** 
    192.168.0.10:2377
    

    若是忘记了init输出的密码和令牌,可以通过命令docker swarm join-token worker查看。

    创建服务

    在manager node上执行命令:

    docker service create --name web_server --publish 8080:80 --replicas=2 192.168.0.10:60000/test/api:1.0
    

    命令是在集群中创建一个叫做web_server的服务,并暴露8080端口出来

    通过docker service ls可以查看目前集群中所有的服务

    通过ocker service ps [服务名]可以查看指定的服务的所有容器[副本] 运行情况

    服务的网络

    默认情况下,如下创建的服务:

    docker service create --name web_server --replicas=2 192.168.0.10:60000/test/api:1.0
    

    此种创建的服务,只能在容器内访问,并不能在外部访问

    若是新创建服务,加上 --publish 8080:80则会映射并暴露8080到外部。

    若是已经创建的服务,则执行:

    docker service update --publish-add 8080:80 web_server
    

    弹性伸缩service

    若是我们要做负载均衡,就需要很多的节点,那么在swarm-manager执行:

    docker service scale web_server=5
    

    这样就可以将service中的副本数量增加且恒定到5个的数量

    默认配置下 manager node 也是 worker node,所以 swarm-manager 上也运行了副本。如果不希望在 manager 上运行 service,可以执行如下命令:

    docker node update --availability drain swarm-manager
    

    不希望在 manager 上运行 service

    默认配置下 manager node 也是 worker node,所以 swarm-manager 上也运行了副本。如果不希望在 manager 上运行 service,可以执行如下命令:

    docker node update --availability drain swarm-manager
    

    另外由于作者本身知识有限,都是摸索着来的,所以不一定所有的做法都对,或者某些实践会有更好的方案,望各位读者不吝指正,有任何疑问,请留 issues

  • 相关阅读:
    软件项目技术点(7)——在canvas上绘制自定义图形
    软件项目技术点(4)——实现点击选中画布上元素
    软件项目技术点(5)——在canvas上绘制动态网格线
    软件项目技术点(3)——多画布职责分离
    软件项目技术点(1)——游戏主循环机制
    Node.js Express 框架
    nodejs进阶(7)—async异步流程控制
    利用shell脚本快速定位日志
    MySQL数据库查询所有表名
    MySQL数据库中查询表的所有列名
  • 原文地址:https://www.cnblogs.com/likeli/p/8967646.html
Copyright © 2011-2022 走看看