环境:centos7
一台管理节点(manager),两台工作节点(worker)。
192.168.10.50 管理节点IP
192.168.10.51 工作节点IP
192.168.10.55 工作节点IP
基础环境配置
因为通过yum安装的docker是比较旧的版本,所以需要手动安装最新的docker。
安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新并安装docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
开启docker服务和设置开机自启动
sudo service docker start
sudo systemctl enable docker
安装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
#要安装全其他版本需替换1.29.2为相应版本号
sudo chmod +x /usr/local/bin/docker-compose #添加docker-compose可执行权限
关闭selinux和防火墙
systemctl disable firewalld #关闭防火墙
vi /etc/selinux/config #打开selinux的设置文件
#将 SELINUX=enforcing 改为 SELINUX=disabled
设置hostname
hostnamectl set-hostname swarm.master #管理服务器
hostnamectl set-hostname swarm.node01 #工作服务器
hostnamectl set-hostname swarm.node10 #工作服务器
设置host相互解析,vi /etc/hosts ,然后填入以下内容
192.168.10.50 swarm.master
192.168.10.51 swarm.node01
192.168.10.55 swarm.node10
开始配置docker swarm
初始化swarm
docker swarm init --advertise-addr 192.168.10.50 #在管理节点执行
#如果服务器有多个IP,必须使用 –advertise-addr 指定 IP
#如果只有一个IP 执行docker swarm init亦可
然后复制出现的docker swarm join --token XXXXX, 并在工作节点执行, 看到 This node joined a swarm as a worker. 说明加入成功。
也可以用以下命令获取加入集群的token
docker swarm join-token worker
在管理节点查看节点信息
docker node ls
部署可视化面板: Portainer.io
在管理节点执行,下载 portainer-agent-stack.yml文件
curl -L https://downloads.portainer.io/portainer-agent-stack.yml \
-o portainer-agent-stack.yml
编辑下载下来的 portainer-agent-stack.yml 文件,根据需要更改,以下是我下载下来的内容
version: '3.2'
services:
agent:
image: portainer/agent:2.11.0
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/docker/volumes:/var/lib/docker/volumes
networks:
- agent_network
deploy:
mode: global
placement:
constraints: [node.platform.os == linux]
portainer:
image: portainer/portainer-ce:2.11.0
command: -H tcp://tasks.agent:9001 --tlsskipverify
ports:
- "9443:9443" #https端口
- "9000:9000" #http端口
- "8000:8000"
volumes:
- portainer_data:/data
networks:
- agent_network
deploy:
mode: replicated
replicas: 1
placement:
constraints: [node.role == manager]
networks:
agent_network:
driver: overlay
attachable: true
volumes:
portainer_data:
默认情况下,Portainer 将通过 port 公开 UI,9443并通过 port 公开 TCP 隧道服务器8000。后者是可选的,仅当您计划将边缘计算功能与边缘代理一起使用时才需要
部署
docker stack deploy -c portainer-agent-stack.yml portainer
等待一段时间后执行
docker ps
##########执行完后出现以下内容就部署完成了.
89bf67a2aa95 portainer/portainer-ce:2.11.0 "/portainer -H tcp:/…" About a minute ago Up About a minute 8000/tcp, 9000/tcp, 9443/tcp portainer_portainer.1.1i61c1wbm3pvw3sufincsdval
e22b9bbee4ff portainer/agent:2.11.0 "./agent" 2 minutes ago Up 2 minutes portainer_agent.od00bsnpw6iok5t9v37fk7v1c.m781waq3muizv7u11g9g48kx0
通过主服务器IP+端口访问 Portainer ,默认9443和9000端口

Comments NOTHING