当前位置:   article > 正文

如何在 Ubuntu 上部署 Docker Swarm ?_ubuntu搭建docker swram

ubuntu搭建docker swram

Docker Swarm 是什么?

Docker Swarm 是一个运行在 Docker 平台上的容器编配工具。它帮助用户创建和管理 Docker 节点集群。Docker 集群是提供冗余的一个关键概念,当集群中的一个或多个节点发生故障时,Docker Swarm 可以进行故障转移。

Docker Swarm 使用标准的 Docker API 与其他工具 (例如 Docker Engine) 进行通信。它智能地将容器分配给工作节点,并通过调度容器使之在最合适的节点上运行,确保资源优化。

先决条件

为了演示 Docker Swarm 是如何工作的,我们有一个简单的集群,其中包括一个集群管理器节点和两个工作节点,如下所示。Manager 节点处理所有集群管理任务,而 worker 节点将运行容器。

  • swarm-manager 10.128.0.57
  • worker-node-1 10.128.0.58
  • worker-node-2 10.128.0.59

(第1步) 配置 Cluster hosts 文件

请登录每个节点,然后使用以下条目更新 /etc /hosts 文件

swarm-manager          10.128.0.57
worker-node-1          10.128.0.58
worker-node-2          10.128.0.59
  • 1
  • 2
  • 3

接下来,确保所有节点可以相互 ping 通。

请在 swarm-manager 节点上执行以下命令

$ ping -c 4 10.128.0.58
$ ping -c 4 10.128.0.59
  • 1
  • 2

请在 worker-node-1 节点上执行以下命令

$ ping -c 4 10.128.0.57
$ ping -c 4 10.128.0.59
  • 1
  • 2

请在 worker-node-2 节点上执行以下命令

$ ping -c 4 10.128.0.57
$ ping -c 4 10.128.0.58
  • 1
  • 2

(第2步) 在所有节点上安装 Docker CE

我们将安装 Docker Community Edition (Docker CE),它可以免费安装和使用。

因此,登录到每个节点并更新本地包索引。

$ sudo apt update
  • 1

接下来,安装安装过程中所需的依赖包

$ sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
  • 1

安装了所有软件包后,添加 Docker GPG 密钥

$ sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/docker.gpg
  • 1

将官方的 Docker 软件源添加到你的 Ubuntu 22.04 系统中

$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  • 1

接下来,更新本地包索引,使系统能够识别新添加的软件源。

$ sudo apt update
  • 1

然后从官方软件源中安装 Docker

$ sudo apt install docker-ce -y
  • 1

该命令将安装 Docker 以及 Docker 所需的其他包,以使其正常工作。

Install-docker-ce-apt-command-ubuntu

安装完 Docker 后,请将当前登录的用户添加到 Docker 组中,以避免每次运行 Docker 时都以 sudo 用户运行。

$ sudo usermod -aG docker ${USER}
$ newgrp docker
  • 1
  • 2

(第3步) 确认 Docker 在所有节点上运行

安装之后,Docker 守护进程会自动启动。可以验证服务是否正在运行,执行命令

$ sudo systemctl status docker
  • 1

Docker-Service-Status-Ubuntu-22-04

另外,请确保启用 Docker 服务,以便它在启动时自动启动。

$ sudo systemctl enable docker
  • 1

(第4步) 创建 Docker Swarm 集群

下一步是在管理器节点上初始化 Docker Swarm 集群。初始化之后,我们将向集群中添加工作节点。

要创建 Docker Swarm 集群,请运行命令:

$ sudo docker swarm init --advertise-addr 10.128.0.57
  • 1

Docker-Swarm-Init-Ubuntu-22-04

一旦初始化完 Docker Swarm,将会在终端上显示加入 worker 节点到集群的命令。复制该命令,因为您需要像前面提到的那样在每个工作节点上运行它。

接下来,登录回每个 worker 节点并粘贴刚复制的命令以加入集群。

$ sudo docker swarm join --token SWMTKN-1-1k397e5o52cae0yipopqcu9werjcwuss1exbyj4635rrjjl723-7ocx56uhb7p1ri7h2u6ynxyno 10.128.0.57:2377
  • 1

如果一切顺利,您应该会得到以下输出

Docker-Swarm-Join-Worker-Nodes-Ubuntu

接下来,确认所有节点都加入了集群,如下所示。

$ sudo docker node ls
  • 1

您应该得到以下输出,显示集群中的所有节点。

List-Nodes-in-docker-Swarm-Ubuntu

(第5步) 测试 Docker Swarm 安装

要测试 docker 集群的安装,请转到 Manager 节点并将一个应用程序部署到集群中。在这个例子中,我们部署了一个 Nginx web 容器,并将它映射到主机上的 8080 端口。

$ sudo docker service create --name web-server --publish 8080:80 nginx:latest
  • 1

Nginx-Based-Service-docker-swarm

接下来,验证已部署的应用程序服务的状态。

$ sudo docker service ls
  • 1

List-Service-in-Docker-Swarm

(第6步) 创建服务副本

最后,创建服务的三副本,并在 Docker Manager 和 Worker 节点上进行扩展。

$ sudo docker service scale web-server=3
  • 1

Service-Scale-docker-Swarm

接下来,确认副本的状态。这一次,你会注意到我们有 3 个副本。

Verify-Service-inDocker-Swarm

此时,Nginx web 容器应该运行在集群中所有的节点上,端口为 8080。要确认这一点,请访问您的浏览器,并从所有节点访问 web 服务器。

http://manager-node:8080

http://worker-node-1:8080

http://worker-node-2:8080

Nginx-Sample-Page-Docker-Swarm-Service

我的开源项目

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/593670
推荐阅读
相关标签
  

闽ICP备14008679号