温馨提示×

Debian Docker集群怎么搭建

小樊
32
2025-12-14 23:37:40
栏目: 智能运维

在 Debian 上搭建 Docker Swarm 集群

一 架构与准备

  • 准备至少3 台运行 Debian 的服务器(建议 1 台管理节点 + 2 台工作节点,管理节点可扩展为多个以实现高可用)。
  • 节点间网络需互通,管理节点 IP 固定且可达。
  • 建议在所有节点配置 /etc/hosts 或使用 DNS 做主机名解析,便于维护。
  • 开放必要端口:2377/tcp(集群管理)、7946/tcp 与 7946/udp(节点通信)、4789/udp(Overlay 网络)。

二 安装 Docker

  • 在所有节点执行以下命令安装 Docker(Debian 官方仓库或 Docker 官方仓库均可,二选一):
    • 方案 A(Debian 仓库):
      sudo apt update
      sudo apt install -y docker.io
      sudo systemctl start docker && sudo systemctl enable docker
    • 方案 B(Docker 官方仓库,版本更新):
      sudo apt-get update
      sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common
      curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
      sudo add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable”
      sudo apt-get update
      sudo apt-get install -y docker-ce docker-ce-cli
      sudo systemctl start docker && sudo systemctl enable docker
      sudo usermod -aG docker $USER # 可选:将当前用户加入 docker 组,免 sudo 执行 docker 命令
  • 验证:docker version、docker info 正常输出。

三 初始化 Swarm 并加入节点

  • 在管理节点初始化 Swarm(将 <MANAGER_IP> 替换为管理节点内网/公网 IP):
    sudo docker swarm init --advertise-addr <MANAGER_IP>
    成功后控制台会输出加入命令,形如:
    docker swarm join --token <MANAGER_IP>:2377
  • 在工作节点执行上条命令加入集群:
    docker swarm join --token <MANAGER_IP>:2377
  • 如需添加更多管理节点,在管理节点执行:
    docker swarm join-token manager
    按提示在目标节点执行输出的 join 命令。
  • 在管理节点查看节点状态:
    docker node ls
  • 常用维护:
    • 查看集群信息:docker info
    • 重新获取加入令牌(worker 或 manager):docker swarm join-token worker|manager

四 部署服务与网络

  • 部署示例服务(创建 3 个 Nginx 副本,集群内部端口 80 映射到节点主机端口 8080):
    docker service create --name web --replicas 3 -p 8080:80 nginx
  • 查看服务与任务:
    docker service ls
    docker service ps web
  • 访问验证:浏览器访问任一节点的 http://<节点IP>:8080
  • 网络说明:Swarm 初始化后会自动创建 overlay 驱动ingress 网络(用于服务发布与路由)和 bridge 驱动docker_gwbridge 网络(用于节点间连接)。如需自定义 Overlay 网络:
    docker network create -d overlay my_overlay

五 可视化管理与运维建议

  • 可视化:部署 Portainer 管理集群。
    • 单机模式(管理节点本地管理):
      docker run -d -p 8000:8000 -p 9443:9443 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data --name portainer --restart=always portainer/portainer-ce:latest
      访问 https://<管理节点IP>:9443
    • 集群模式(Agent 方式):使用官方提供的 portainer-agent-stack.yml 部署,在管理节点执行:
      curl -L https://downloads.portainer.io/ce2-19/portainer-agent-stack.yml -o portainer-agent-stack.yml
      docker stack deploy -c portainer-agent-stack.yml portainer
  • 运维要点:
    • 防火墙放行端口:2377/tcp、7946/tcp/udp、4789/udp;云服务器需同时放通安全组规则。
    • 建议为管理节点配置 静态 IP 或稳定的 –advertise-addr
    • 需要高可用时,部署多个管理节点并定期备份集群状态。
    • 日志与监控:集中采集容器日志,按需接入 Prometheus + Grafana

0