随着容器化技术的不断发展,Docker 已经成为了现代 IT 基础设施的重要组成部分。对于跨境电商、游戏等高并发业务来说,如何高效地管理和调度服务,已成为运维的核心任务之一。A5数据将以香港服务器为基础,结合 Ubuntu 22.04 系统和 Docker Swarm 集群部署,详解如何通过 Docker Swarm 进行服务调度、集群管理和容器部署,带领大家从零到一,完成一个生产环境的实际部署。

相关服务:香港CN2服务器租用

如何在香港服务器 Ubuntu 22.04 + Docker Swarm 集群部署与服务调度实战详解

部署背景

在本教程中,A5数据将通过 Docker Swarm 集群来部署一款微服务架构应用,并实现自动化服务调度。考虑到业务的高并发要求,我们将选择香港服务器,充分利用其低延迟、高带宽的网络特性,以确保数据流和容器之间的高效通信。硬件配置上,我们将使用以下服务器:

香港服务器www.a5idc.com硬件配置

  • CPU:AMD EPYC 7313P 16 核心 / 32 线程
  • 内存:64GB DDR4-3200
  • 存储:1TB NVMe SSD
  • 带宽:100M BGP 带宽 + 25M CN2 直连
  • 操作系统:Ubuntu 22.04 LTS
  • Docker 版本:Docker 20.10.x
  • Docker Compose 版本:1.29.x

系统环境准备

1. 安装 Ubuntu 22.04

首先,需要在香港服务器上安装 Ubuntu 22.04 LTS 操作系统。假设您已经通过远程连接(SSH)访问了服务器。以下是安装过程中需要的命令:

sudo apt update
sudo apt upgrade -y

2. 安装 Docker 和 Docker Compose

Docker 是 Docker Swarm 集群的核心组件,我们需要在每个节点上安装 Docker 及其依赖工具。

# 安装 Docker
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io -y

# 安装 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

验证 Docker 和 Docker Compose 安装成功:

docker --version
docker-compose --version

3. 配置 Docker Swarm

Docker Swarm 是 Docker 原生的集群管理工具,支持容器的自动调度、扩容和负载均衡。我们将首先初始化 Swarm 集群,并设置一个管理节点。

# 初始化 Docker Swarm 集群
sudo docker swarm init --advertise-addr <MANAGER-IP>

# 获取工作节点加入命令
sudo docker swarm join-token worker

将其他节点加入到集群中时,执行以下命令:

sudo docker swarm join --token <TOKEN> <MANAGER-IP>:2377

部署应用服务

1. 创建 Docker Compose 文件

为了方便管理和调度多个容器服务,我们使用 Docker Compose 定义应用服务的配置。在集群的管理节点上创建一个 docker-compose.yml 文件,内容如下:

version: '3'

services:
  webapp:
    image: nginx:latest
    deploy:
      replicas: 3
      resources:
        limits:
          cpus: '0.5'
          memory: 512M
    ports:
      - "80:80"

  backend:
    image: my-backend:latest
    deploy:
      replicas: 2
      resources:
        limits:
          cpus: '1'
          memory: 1G
    environment:
      - DATABASE_URL=mysql://db:3306
    networks:
      - mynetwork

  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: root_password
    networks:
      - mynetwork

networks:
  mynetwork:
    driver: overlay

这个 Compose 文件定义了一个包含 Web 应用(Nginx)、后端服务和 MySQL 数据库的应用栈。replicas 参数指定了服务的副本数量,resources 用来限制每个容器的 CPU 和内存资源。所有服务都通过 overlay 网络进行连接,确保跨节点通信。

2. 启动服务

在 Docker Swarm 集群的管理节点上执行以下命令来部署服务:

docker stack deploy -c docker-compose.yml myapp

执行后,Docker 会根据 docker-compose.yml 文件中的配置,在集群中自动调度并启动各个服务。

3. 服务状态查看

查看服务和任务的运行状态:

# 查看 Stack 部署状态
docker stack ps myapp

# 查看服务状态
docker service ls

4. 扩容服务

当流量增加时,可以通过 Docker Swarm 扩容服务:

# 扩容 webapp 服务到 5 个副本
docker service scale myapp_webapp=5

5. 健康检查与负载均衡

Docker Swarm 会自动根据负载进行容器的负载均衡和故障恢复。为了确保服务的高可用性,我们可以配置健康检查。在 docker-compose.yml 文件中添加以下配置:

  webapp:
    image: nginx:latest
    deploy:
      replicas: 3
      healthcheck:
        test: ["CMD", "curl", "-f", "http://localhost"]
        interval: 30s
        retries: 3

通过健康检查,Docker Swarm 会在服务出现问题时自动重启并恢复。

性能评估与监控

为了确保服务的性能稳定,我们在部署过程中加入了资源限制。为了进一步监控应用,我们可以使用 Docker 自带的监控工具或者集成 Prometheus 与 Grafana 进行可视化监控。

1. 查看容器性能

Docker 提供了 docker stats 命令,用于实时查看容器的资源使用情况:

docker stats

2. 使用 Prometheus + Grafana 监控

我们可以通过 docker-compose 配置文件引入 Prometheus 和 Grafana 来进行性能监控,以下是简单的监控配置:

version: '3'

services:
  prometheus:
    image: prom/prometheus
    ports:
      - "9090:9090"
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml

  grafana:
    image: grafana/grafana
    ports:
      - "3000:3000"
    environment:
      - GF_SECURITY_ADMIN_PASSWORD=admin

Prometheus 将收集容器和系统的性能数据,Grafana 则提供了可视化的仪表盘,帮助我们进行性能监控。

总结

A5数据通过本文的教程,我们展示了如何在香港服务器上,使用 Ubuntu 22.04 和 Docker Swarm 集群技术,完成容器化应用的部署与服务调度。Docker Swarm 提供了高效的容器管理和自动化调度能力,而香港服务器的低延迟与高带宽特性,为跨境电商、游戏等业务提供了稳定可靠的服务保障。

以下是我们部署过程中所使用的硬件与技术配置:

项目规格
CPUAMD EPYC 7313P 16 核 / 32 线程
内存64GB DDR4-3200
存储1TB NVMe SSD
带宽100M BGP 带宽 + 25M CN2 直连
操作系统Ubuntu 22.04 LTS
Docker 版本Docker 20.10.x
Docker Compose1.29.x

希望本教程能帮助您更好地了解 Docker Swarm 的部署与服务调度,提升集群管理和容器化应用的运维效率。