一路狂飙

Swarm mode的最佳实践

docker在2017年全面支持k8s了,但是在小集群中,swarm的轻量还是有它独有的优势。

Swarm安装

swarm不需要安装了,swarm已经被内置进docker包中了,你只需要用docker swarm命令就可以了。

Swarm架构

  • 一个swarm集群有N个node
  • 每个node上有N个task
  • 一个service有N个task,分布在M个node上
  • task == container
  • service 可以动态的改变task个数,可以自动负载均衡

Swarm命令

  • docker swarm # 操作跟集群相关的东东
  • docker node # 操作跟节点相关的东东
    • docker node ls
  • docker service # 操作跟服务相关的东东
    • docker service create –replicas 3 -p 80:80 –name nginx nginx
    • docker service ls
    • docker service ps nginx
    • docker service logs nginx
    • docker service scale nginx=2
    • docker service scale nginx=5
    • docker service rm nginx

使用 docker-compose.yml 来启动服务

version: "3"

services:
  wordpress:
    image: wordpress
    ports:
      - 80:80
    networks:
      - overlay
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
    deploy:
      mode: replicated
      replicas: 3

命令 docker stack deploy -c docker-compose.yml wordpress