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 来启动服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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