Docker swarm集群管理工具

1. 简介

Docker Swarm 是Docker的集群管理工具,简单方便、易于上手。

Swarm集群由以下两个组件构成:

  • Mananger:负责整个集群的管理工作包括集群配置、服务管理等所有跟集群有关的工作
  • Worker:主要负责运行相应的服务来执行任务(task)

2. 部署

准备两台server,分别是:192.168.44.141(Manager)、192.168.44.140(Worker)。

  • 初始化Manager
# docker swarm init --advertise-addr 192.168.44.141
Swarm initialized: current node (zm7q1dewfj6tqo4way3f497ky) is now a manager.

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

    docker swarm join --token SWMTKN-1-0671cw61lnf0xuf8gftx7pnapirf8pk20dv9rr3k9fo7kuti76-8micra51k1rolbjcx47i2vd4v 192.168.44.141:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
  • 加入Worker
# docker swarm join --token SWMTKN-1-0671cw61lnf0xuf8gftx7pnapirf8pk20dv9rr3k9fo7kuti76-8micra51k1rolbjcx47i2vd4v 192.168.44.141:2377
This node joined a swarm as a worker.

3. 管理

可以利用docker node实现对swarm节点的管理

  • 查看帮助
# docker node --help

Usage:  docker node COMMAND

Manage Swarm nodes

Commands:
  demote      Demote one or more nodes from manager in the swarm
  inspect     Display detailed information on one or more nodes
  ls          List nodes in the swarm
  promote     Promote one or more nodes to manager in the swarm
  ps          List tasks running on one or more nodes, defaults to current node
  rm          Remove one or more nodes from the swarm
  update      Update a node
  • Manager上查看node信息
# docker node ls
ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
zm7q1dewfj6tqo4way3f497ky *   master              Ready               Active              Leader              19.03.12
eg2en2llac0g4cd17xqoweufz     node1               Ready               Active                                  18.06.3-ce

4. 服务

可以利用docker service实现对swarm服务的管理

  • 查看帮助
# docker service --help

Usage:  docker service COMMAND

Manage services

Commands:
  create      Create a new service
  inspect     Display detailed information on one or more services
  logs        Fetch the logs of a service or task
  ls          List services
  ps          List the tasks of one or more services
  rm          Remove one or more services
  rollback    Revert changes to a service's configuration
  scale       Scale one or multiple replicated services
  update      Update a service
  • 创建服务
# docker service create --replicas 1 -p80:80 --name=myngx nginx
n3q3hjn69isu2b0cp6lrmmp58
overall progress: 1 out of 1 tasks
1/1: running   [==================================================>]
verify: Service converged
  • 列出服务
# docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE               PORTS
n3q3hjn69isu        myngx               replicated          1/1                 nginx:latest        *:80->80/tcp
  • 删除服务
docker service rm myngx

5. 编排

可以利用docker stack将应用部署到swarm集群上

  • 查看帮助
# docker stack --help

Usage:  docker stack [OPTIONS] COMMAND

Manage Docker stacks

Options:
      --orchestrator string   Orchestrator to use (swarm|kubernetes|all)

Commands:
  deploy      Deploy a new stack or update an existing stack
  ls          List stacks
  ps          List the tasks in the stack
  rm          Remove one or more stacks
  services    List the services in the stack
  • docker-compose.yml示例
# cat docker-compose.yml
version: '3'
services:
  redis:
    image: "redis:alpine"
  • 部署
# docker stack deploy -c docker-compose.yml redis
Creating network redis_default
Creating service redis_redis
  • 查看
# docker stack ls
NAME                SERVICES            ORCHESTRATOR
redis               1                   Swarm

# docker stack ps redis
ID                  NAME                IMAGE               NODE                DESIRED STATE       CURRENT STATE                    ERROR               PORTS
s6oqyfb0tgf4        redis_redis.1       redis:alpine        node1               Running             Running less than a second ago

# docker stack services redis
ID                  NAME                MODE                REPLICAS            IMAGE               PORTS
5x3zx5lkf20u        redis_redis         replicated          1/1                 redis:alpine
  • 删除
# docker stack rm redis
Removing service redis_redis
Removing network redis_default
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值