Docker Swarm集群搭建、弹性扩缩容

官方文档: https://docs.docker.com/engine/swarm/swarm-tutorial/

工作模式

Docker Swarm集群搭建、弹性扩缩容

搭建集群

docker swarm --help 
# 查看私网IP地址
ip addr 

docker swarm init --advertise-addr 192.168.98.224

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-2izj4yg08taobo19tjb9ci3r0w3lwkxxq8gvwx0d71zi71gize-8c4desxvd2mxt14zwv5sjneel 192.168.98.224:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
# 初始化主节点 后面可以加入主节点或者工作节点
docker swarm init 

# 加入一个节点
docker swarm join 
# 创建manager节点命令
docker swarm join-token manager
# 创建worker节点命令
docker swarm join-token worker

# 查看节点 只有manager节点可以使用该命令
docker node ls 

# 离开集群
docker swarm leave

Raft一致性协议

保证大多数节点存活才可以使用

Swarm集群弹性创建服务

docker run : 容器启动 不具备扩缩容
docker-compose up : 启动一个项目、单机
dockck swarm : 集群, docker service .分布在不同主机上
Docker Swarm集群搭建、弹性扩缩容

# 启动服务
docker service create -p 8888:80 --name swarm-nginx nginx

# 查看服务
docker service ps swarm-nginx
docker service ls
docker service inspect swarm-nginx

# 扩容
docker service update --replicas 3 swarm-nginx
# 或者使用 scale 扩容
docker servcie scale swarm-nginx=3

# 移除服务
docker service rm swarm-nginx

集群中任意的节点都可以访问,服务可以有多个副本动态扩缩容实现高可用

概念总结

  • Swarm
    集群的管理和编号;docker可以初始化一个swarm集群,其他节点可以加入(管理者、工作者)

  • Node
    就是一个Dokcer节点,多个节点组成一个网络集群。

  • Service
    任务,可以在管理节点或者工作节点运行。提供用户访问

  • Task
    容器内的命令 细节任务

Docker Swarm

Docker Swarm集群搭建、弹性扩缩容

Service

Docker Swarm集群搭建、弹性扩缩容

docker service create流程

Docker Swarm集群搭建、弹性扩缩容

服务副本与全局服务

Docker Swarm集群搭建、弹性扩缩容

调整Service以什么方式运行

# 默认在工作节点创建服务
docker service create --mode replicated --name mytomcat tomcat:7

docker service create --mode global --name mytomcat tomcat:7

# 场景:日志收集、服务监控、状态性能
每一个节点都有自己的日志收集器,过滤日志后把所有日志最终传给日志中心

扩展

网络模式: PublishMode: ingress

模式
Overlay 跨机器互通 网络变成一个整体
ingress 特殊的Overlay网络 具有负载均衡功能
docker network inspect ingress

Docker Swarm集群搭建、弹性扩缩容

Docker Stack

# 单机
docker-compose up -d wordpress.yml
# 集群
docker stack deploy wordpress.yml

Docker Secret

配置密码、证书

Docker Config

上一篇:Linux中FTP的一点理解


下一篇:11 Docker Swarm