本文介绍在Debian 10服务器上安装和设置Docker Swarm Cluster(集群)的详细方法。
前言 Docker Swarm使用管理器主机和工作节点架构,您的docker Swarm集群中可以有一个或多个Manager节点。管理器节点使用本机Docker API,并与辅助节点共享Docker Swarm集群的数据库,管理器主机维护集群状态,安排任务并处理HTTP API端点。 工作节点是执行容器的Docker引擎的实例。
与Kubernetes具有监视、入口和卷等完整功能相比,Docker Swarm具有更简单的状态。Docker Swarm还缺少自动扩展功能,即容器无法基于监视和资源利用来自动扩展,您必须手动缩放容器。
一、节点准备 为/etc/hosts文件中的每个节点配置主机名以进行本地解析: sudo vim /etc/hosts 添加每个服务器上节点的详细信息,包括管理者节点和辅助节点: 10.31.45.182 manager 10.31.45.226 worker-01 10.31.45.219 worker-02 请确保主机可以通过ping相互访问。
二、在Debian 10上安装Docker CE 我们需要在所有主机、管理器和辅助节点上安装Docker引擎。请参考在Ubuntu/Debian/Fedora/Arch/CentOS上安装Docker CE的方法。 所运行的命令如下: sudo apt-get update sudo apt-get install 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 docker-ce docker-ce-cli 然后启动并启用Docker,并将您的用户添加到Docker组: sudo systemctl start docker sudo systemctl enable docker sudo usermod -aG docker ${USER}
三、初始化Docker Swarm Cluster 在此步骤中,我们需要在管理器节点上初始化Docker群集模式,然后我们可以稍后添加工作器节点。 以下命令用于初始化Docker Swarm Manager,您应将<manager-IP>地址替换为管理器节点的IP: newgrp docker sudo docker swarm init --advertise-addr <manager-IP> 样例输出如下: $ docker swarm init --advertise-addr 10.31.45.182 Swarm initialized: current node (xj5sqdpsbs5x2pgt670dft31m) is now a manager. To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-5yat7zlum78qmnlhv1vs0b0k4c42jafh5kt8xtb36eara4c5ip-490dr4yhpbe5qnic476wh90zg 10.31.45.182:2377 To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions. 在初始化管理器节点之后,我们现在可以使用上面示例中提供的连接令牌添加工作器节点: $ docker swarm join --token SWMTKN-1-5yat7zlum78qmnlhv1vs0b0k4c42jafh5kt8xtb36eara4c5ip-490dr4yhpbe5qnic476wh90zg 10.31.45.182:2377 This node joined a swarm as a worker. 我们可以使用以下命令检查工作节点是否已成功加入集群: sudo docker node ls 样例输出如下图:
1、以下将在Docker Swarm上部署应用程序,我们将在集群上部署一个Web应用程序: $ docker service create --name webserver -p 8080:80 nginx 上面的命令在群集上部署Nginx应用程序,并在8080端口上公开。 要确认服务是否正在运行,请运行docker service ls命令:
2、以下将在Docker Swarm上扩展应用程序,您可以在Docker Swarm集群上扩展应用程序,以实现高可用性和高性能,请使用以下命令: $ docker service scale webserver=4 其中webserver=4是应用程序的名称,是复制后将要运行的总容器数,也可以是其它的名称,如ywnz,它的运行结果如下图:
您可以使用docker service ls命令验证副本,如下图:
至此,我们已经在Debian 10主机上成功部署了Docker Swarm Cluster(集群)。
相关主题 |