插件窝 干货文章 如何在Linux上配置容器编排平台(如Docker Swarm)

如何在Linux上配置容器编排平台(如Docker Swarm)

Docker 节点 集群 Swarm 513    来源:    2025-04-16

在Linux上配置Docker Swarm容器编排平台

Docker Swarm是Docker原生的容器编排工具,允许您将多个Docker主机集群化为一个虚拟Docker引擎。以下是配置Docker Swarm的完整步骤:

1. 准备工作

确保所有节点满足以下条件: - 运行Linux操作系统(推荐Ubuntu 20.04/22.04或CentOS 7/8) - 网络互通(建议关闭防火墙或配置适当规则) - 所有节点时间同步(使用NTP服务)

2. 在所有节点上安装Docker

# Ubuntu/Debian
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
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-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io

# CentOS/RHEL
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker && sudo systemctl enable docker

3. 初始化Swarm集群

选择一个节点作为管理节点(manager),执行:

sudo docker swarm init --advertise-addr <MANAGER-IP>

例如:

sudo docker swarm init --advertise-addr 192.168.1.100

命令执行后会输出加入集群的命令,类似:

docker swarm join --token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c 192.168.1.100:2377

4. 添加工作节点

在其他节点上运行上一步得到的docker swarm join命令来加入集群:

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

5. 验证集群状态

在管理节点上运行:

sudo docker node ls

输出应显示所有节点及其状态(包括管理节点和工作节点)。

6. 管理Swarm集群

常用管理命令:

# 查看集群节点
docker node ls

# 查看服务
docker service ls

# 创建服务
docker service create --name my-web --replicas 3 -p 8080:80 nginx

# 扩展服务
docker service scale my-web=5

# 更新服务
docker service update --image nginx:latest my-web

# 删除服务
docker service rm my-web

7. 高可用配置(可选)

添加更多管理节点以提高可用性:

# 在第一个管理节点上获取加入令牌
docker swarm join-token manager

# 在其他节点上运行输出的命令加入为管理节点

8. 网络配置(可选)

# 创建overlay网络
docker network create --driver overlay my-overlay-net

# 在指定网络上创建服务
docker service create --name my-service --network my-overlay-net my-image

9. 存储配置(可选)

# 创建volume
docker volume create my-volume

# 使用volume创建服务
docker service create --name my-db --mount type=volume,source=my-volume,destination=/var/lib/mysql mysql

10. 安全配置建议

  1. 定期轮换Swarm join tokens:

    docker swarm join-token --rotate
    
  2. 限制管理节点访问:

    docker node update --availability drain <NODE-ID>
    
  3. 使用TLS加密通信(在初始化时添加--tlsverify参数)

故障排除

  1. 节点无法加入集群:

    • 检查网络连接和防火墙设置
    • 确保所有节点时间同步
    • 验证token是否正确
  2. 服务无法启动:

    • 检查资源限制
    • 查看服务日志:docker service logs <SERVICE-ID>
  3. 节点状态异常:

    • 尝试重新加入集群
    • 检查Docker引擎是否正常运行

通过以上步骤,您已成功配置了一个Docker Swarm集群,可以开始部署和管理容器化应用了。