乐趣区

关于ubuntu:如何在-Ubuntu2204-上部署-Docker-Swarm

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

接下来,确保所有节点能够互相 ping 通。

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

$ ping -c 4 10.128.0.58
$ ping -c 4 10.128.0.59

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

$ ping -c 4 10.128.0.57
$ ping -c 4 10.128.0.59

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

$ ping -c 4 10.128.0.57
$ ping -c 4 10.128.0.58

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

咱们将装置 Docker Community Edition (Docker CE),它能够收费装置和应用。

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

$ sudo apt update

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

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

装置了所有软件包后,增加 Docker GPG 密钥

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

将官网的 Docker 软件源增加到你的 Ubuntu 22.04 零碎中

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

接下来,更新本地包索引,使零碎可能辨认新增加的软件源。

$ sudo apt update

而后从官网软件源中装置 Docker

$ sudo apt install docker-ce -y

该命令将装置 Docker 以及 Docker 所需的其余包,以使其失常工作。

装置完 Docker 后,请将以后登录的用户增加到 Docker 组中,以防止每次运行 Docker 时都以 sudo 用户运行。

$ sudo usermod -aG docker ${USER}
$ newgrp docker

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

装置之后,Docker 守护过程会主动启动。能够验证服务是否正在运行,执行命令

$ sudo systemctl status docker

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

$ sudo systemctl enable docker

(第 4 步) 创立 Docker Swarm 集群

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

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

$ sudo docker swarm init --advertise-addr 10.128.0.57

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

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

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

如果一切顺利,您应该会失去以下输入

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

$ sudo docker node ls

您应该失去以下输入,显示集群中的所有节点。

(第 5 步) 测试 Docker Swarm 装置

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

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

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

$ sudo docker service ls

(第 6 步) 创立服务正本

最初,创立服务的三正本,并在 Docker Manager 和 Worker 节点上进行扩大。

$ sudo docker service scale web-server=3

接下来,确认正本的状态。这一次,你会留神到咱们有 3 个正本。

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

http://manager-node:8080

http://worker-node-1:8080

http://worker-node-2:8080

我的开源我的项目

  • course-tencent-cloud(酷瓜云课堂 – gitee 仓库)
  • course-tencent-cloud(酷瓜云课堂 – github 仓库)
退出移动版