插件窝 干货文章 docker集群怎么搭建

docker集群怎么搭建

Docker 节点 集群 搭建 440    来源:    2025-04-06

Docker集群搭建指南

搭建Docker集群主要有以下几种主流方案,我将分别介绍每种方案的搭建步骤:

1. Docker Swarm 集群搭建

Docker Swarm是Docker原生的集群管理工具,简单易用。

准备工作

  • 多台Linux服务器(至少2台)
  • 所有节点安装Docker Engine(版本建议19.03+)
  • 节点间网络互通

搭建步骤

  1. 初始化Swarm集群(管理节点)

    docker swarm init --advertise-addr <管理节点IP>
    

    命令执行后会输出加入工作节点的命令

  2. 加入工作节点 在工作节点上运行上一步输出的命令,例如:

    docker swarm join --token SWMTKN-1-xxxxx <管理节点IP>:2377
    
  3. 验证集群状态

    docker node ls
    
  4. 部署服务

    docker service create --name web --replicas 3 -p 80:80 nginx
    

2. Kubernetes (K8s) 集群搭建

Kubernetes是更强大的容器编排系统,适合复杂场景。

使用kubeadm搭建

  1. 所有节点准备工作

    # 关闭swap
    swapoff -a
    sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
    
    # 安装Docker
    apt-get update && apt-get install -y docker.io
    
    # 安装kubeadm, kubelet和kubectl
    apt-get update && apt-get install -y apt-transport-https curl
    curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
    cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
    deb https://apt.kubernetes.io/ kubernetes-xenial main
    EOF
    apt-get update
    apt-get install -y kubelet kubeadm kubectl
    apt-mark hold kubelet kubeadm kubectl
    
  2. 主节点初始化

    kubeadm init --pod-network-cidr=10.244.0.0/16
    

    初始化完成后按照提示设置kubectl配置

  3. 安装网络插件

    kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    
  4. 加入工作节点 在主节点初始化完成后会输出加入命令,在工作节点执行该命令

3. 使用Docker Compose配合Swarm

对于小型集群,可以结合Docker Compose和Swarm使用

  1. 初始化Swarm集群

    docker swarm init
    
  2. 使用Compose文件部署 ```docker-compose.yml version: '3.8'

    services: web: image: nginx deploy: replicas: 3 resources: limits: cpus: "0.1" memory: 50M ports: - "80:80" ```

  3. 部署服务

    docker stack deploy -c docker-compose.yml myapp
    

集群管理工具推荐

  1. Portainer - Docker图形化管理工具

    docker volume create portainer_data
    docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
    
  2. Rancher - 多集群管理平台

注意事项

  1. 生产环境建议至少3个管理节点以保证高可用
  2. 配置适当的网络插件(如Calico、Flannel等)
  3. 设置合理的资源限制和健康检查
  4. 考虑持久化存储方案(如NFS、Ceph等)
  5. 配置日志收集和监控系统(如ELK、Prometheus等)

根据您的具体需求和技术栈选择合适的集群方案。对于初学者或小型项目,Docker Swarm是更简单的选择;对于大型生产环境,Kubernetes提供了更全面的功能。