Docker Swarm(创建Swarm集群)

Docker Swarm

Docker Swarm 优点

任何规模都有高性能表现
灵活的容器调度
服务的持续可用性
和 Docker API 及整合支持的兼容性
Docker Swarm 为 Docker 化应用的核心功能(诸如多主机网络和存储卷管理)提供原生支持。

docker swarm 相关概念

节点分为管理 (manager) 节点和工作 (worker) 节点
任务 (Task)是 Swarm 中的最小的调度单位,目前来说就是一个单一的容器。
服务 (Services) 是指一组任务的集合,服务定义了任务的属性。

Docker Swarm实践

创建 Swarm 集群

  • 初始化集群: docker swarm init (会生成一串码,每台主机不同)
  • 根据提示在其他docker节点上执行命令:12、13端
[root@server12 ~]# docker swarm join --token SWMTKN-1-11juqh1qu4uo43sgqaqmplpj1b9dnrrws76d028rb70mxpp72g-7pm7zjheh0hwdqze6fdhfxkv0 172.25.11.11:2377
This node joined a swarm as a worker.

[root@server13 yum.repos.d]# docker swarm join --token SWMTKN-1-11juqh1qu4uo43sgqaqmplpj1b9dnrrws76d028rb70mxpp72g-7pm7zjheh0hwdqze6fdhfxkv0 172.25.11.11:2377
This node joined a swarm as a worker.
  • 查看swarm集群节点:
[root@server11 ~]# docker node ls
ID                            HOSTNAME   STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
6sa0dqsbc4jrrdd71tq1jgg5k *   server11   Ready     Active         Leader           20.10.2
e9o42ykja0ydtwjiyu5q6jxl1     server12   Ready     Active                          20.10.2
xxzx1eib068bqxxxmtm9yb29f     server13   Ready     Active                          20.10.2

在三台机子上拉取此镜像,来做负载均衡测试docker pull ikubernetes/myapp:v1

[root@server11 ~]# docker tag ikubernetes/myapp:v1 myapp:v1

[root@server11 ~]# docker service create --name my_cluster --replicas 2 -p 80:80  myapp:v1
[root@server11 ~]# docker service ls
ID             NAME         MODE         REPLICAS   IMAGE      PORTS
zcdpqdv68wji   my_cluster   replicated   2/2        myapp:v1   *:80->80/tcp
[root@server11 ~]# docker service ps my_cluster 
ID             NAME           IMAGE      NODE       DESIRED STATE   CURRENT STATE            ERROR     PORTS
mn7cp55l48c1   my_cluster.1   myapp:v1   server13   Running         Running 31 seconds ago             
lmihx9y8425i   my_cluster.2   myapp:v1   server11   Running         Running 20 seconds ago             

访问测试:

[root@foundation0 Desktop]# curl 172.25.11.11
Hello MyApp | Version: v1 | <a href="hostname.html">Pod Name</a>
[root@foundation0 Desktop]# curl 172.25.11.11
Hello MyApp | Version: v1 | <a href="hostname.html">Pod Name</a>
[root@foundation0 Desktop]# curl 172.25.11.11/hostname.html
3e51201d10ef
[root@foundation0 Desktop]# curl 172.25.11.11/hostname.html
041bbedef164
[root@foundation0 Desktop]# curl 172.25.11.11/hostname.html
3e51201d10ef
[root@foundation0 Desktop]# curl 172.25.11.11/hostname.html
041bbedef164
  • 部署swarm监控:(各节点提前导入dockersamples/visualizer镜像)
    拉取监控镜像 docker pull dockersamples/visualizer

docker service create --name=viz --publish=8080:8080/tcp --constraint=node.role==manager --mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock dockersamples/visualizer

在这里插入图片描述
[root@server13 ~]systemctl stop docker.service
在这里插入图片描述

  • waiting…
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值