写点什么

(VMware)ubuntu 环境下搭建 Swarm+Stack 一站式部署容器集群

用户头像
逸少
关注
发布于: 2021 年 05 月 24 日
(VMware)ubuntu环境下搭建Swarm+Stack一站式部署容器集群

本文主要讲述如何在 win10 系统上,使用 vmware 安装 Ubuntu 虚拟机,搭建 Swarm+Stack 一站式部署容器集群

版本约定

  • 试验电脑系统为 Windows 10 专业版

  • VMware 版本为 VMware Workstation 16 Pro

  • Ubuntu 版本为 Ubuntu 20.04.2 LTS

  • Docker 版本为 Docker version 20.10.6

  • docker-compose 版本为 docker-compose version 1.29.2

Swarm 集群规划

  • 虚拟机名称 username hostname IP 集群角色

  • node-1 yishao node1 192.168.57.131 Leader

  • node-2 yishao node2 192.168.57.132

  • node-3 yishao node3 192.168.57.133

Docker 单机部署

可以参考笔者另外一篇文章,里面有比较详细的讲述,根据此文章的步骤我们可以完成 Docker 单机环境的部署, 并完成 node-1 的安装和配置:

  • 虚拟机名称 username hostname IP

  • node-1 yishao node1 192.168.57.131

克隆虚拟机

同样根据笔者另外一篇文章 最后一章节内容,对已经完成的虚拟机 node-1 进行克隆,并分别命名为 node-2、node-3,相关注意点已经在文中做了详细讲解。

克隆完成后分别将 node-2、node-3 的 hostname 设置为 node2、node3,IP 设置为 192.168.57.132、192.168.57.133

至此我们就得到了三台部署了单机 Docker 环境

  • 虚拟机名称 username hostname IP

  • node-1 yishao node1 192.168.57.131

  • node-2 yishao node2 192.168.57.132

  • node-3 yishao node3 192.168.57.133


接下来的工作就需要我们将这三台单机 Docker 配置成集群环境

Swarm 配置

  • 在 node-1 中执行如下命令,初始化 swarm

yishao@node1:~$ docker swarm init
复制代码
  • 根据上一条命令的执行结果提示,在 node-2、node-3 上执行 join 操作,如下

yishao@node2:~$ docker swarm join --token SWMTKN-1-0882whu3j7zzpvb0cfc3hhidrq7abz8jvbfq63qq0itbl1wclo-b626cuw5lj31yysta0593yhuk 192.168.57.131:2377
复制代码


yishao@node3:~$ docker swarm join --token SWMTKN-1-0882whu3j7zzpvb0cfc3hhidrq7abz8jvbfq63qq0itbl1wclo-b626cuw5lj31yysta0593yhuk 192.168.57.131:2377
复制代码
  • 在 node-1 上查看集群信息

yishao@node1:~$ docker node lsID                            HOSTNAME   STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION6gln03vr6814qbs0izau27csw *   node1      Ready     Active         Leader           20.10.6sjwlf1zh3ict9t415m5nqhpy6     node2      Ready     Active                          20.10.6wawizhmt4s5bk2yxqo5e36rzz     node3      Ready     Active                          20.10.6
复制代码


至此 swarm、stack 环境已经搭建成功~


部署应用

  • 在/home/yishao/nginx 目录下创建 docker-compose.yml 文件,内容如下

version: '3.1'services:  nginx:    image: nginx    ports:      - 8888:80    deploy:      mode: replicated      replicas: 3
复制代码
  • 启动集群

yishao@node1:~/nginx$ docker stack deploy -c docker-compose.yml nginx
复制代码
  • 在 node-1 查看 nginx 集群是否启动成功

yishao@node1:~/nginx$ docker stack deploy -c docker-compose.yml nginxCreating network nginx_defaultCreating service nginx_nginxyishao@node1:~/nginx$ docker stack lsNAME      SERVICES   ORCHESTRATORnginx     1          Swarmyishao@node1:~/nginx$ docker stack ps nginxID             NAME            IMAGE          NODE      DESIRED STATE   CURRENT STATE            ERROR     PORTSx4m2guy57y8a   nginx_nginx.1   nginx:latest   node2     Running         Running 17 seconds agocmjhtqzhqwtr   nginx_nginx.2   nginx:latest   node3     Running         Running 1 second agoqrm2qsvt6aby   nginx_nginx.3   nginx:latest   node1     Running         Running 17 seconds agoyishao@node1:~/nginx$ docker psCONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS     NAMESc9baac540686   nginx:latest   "/docker-entrypoint.…"   28 seconds ago   Up 26 seconds   80/tcp    nginx_nginx.3.qrm2qsvt6abyt96ndixs16g77
复制代码
  • 在 node-2 查看 nginx 容器是否运行成功

yishao@node2:~$ docker psCONTAINER ID   IMAGE          COMMAND                  CREATED              STATUS              PORTS     NAMES58142d2413c8   nginx:latest   "/docker-entrypoint.…"   About a minute ago   Up About a minute   80/tcp    nginx_nginx.1.x4m2guy57y8a743dfi1ab2fyz
复制代码
  • 在 node-3 查看 nginx 容器是否运行成功

yishao@node3:~$ docker psCONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS     NAMES41ba407e6b20   nginx:latest   "/docker-entrypoint.…"   55 seconds ago   Up 53 seconds   80/tcp    nginx_nginx.2.cmjhtqzhqwtrleha8fgajqqs4
复制代码
  • 浏览器访问结果如下


至此最简单的 Swarm+Stack 一站式部署容器集群搭建成功


参考:(VMware)ubuntu 环境下搭建 docker 环境

发布于: 2021 年 05 月 24 日阅读数: 320
用户头像

逸少

关注

逸少 2017.12.01 加入

一名不甘做咸鱼的码农; 人生没有太晚的开始,只有敢不敢全力前行;

评论

发布
暂无评论
(VMware)ubuntu环境下搭建Swarm+Stack一站式部署容器集群