使用Portainer管理Docker swarm集群

节点 Docker版本 角色
192.168.0.101 18.06.2 manager
192.168.0.102 18.06.2 worker

各节点需关闭防火墙或开放相关端口,需关闭selinux

1、修改主机名及hosts

因集群在选举角色时需要用到主机名来指定不同的角色,所以机器需要事先修改为不同的主机名用以区分,避免出错

hostnamectl set-hostname manager
hostnamectl set-hostname worker1
hostnamectl set-hostname worker2
...

设置hosts(所有节点)

vim /etc/hosts
192.168.0.101 manager
192.168.0.102 worker1

2、修改docker.service文件

vim /etc/systemd/system/docker.service

在“ExecStart=/usr/bin/dockerd”后添加“-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock”

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

重新启动docker服务

systemctl daemon-reload
systemctl restart docker

3、选举集群manager节点

在集群中要被选举为manager的docker节点中运行以下命令

docker swarm init --advertise-addr 192.168.0.101

在这里插入图片描述
使用如下命令可查看node

docker node ls

在这里插入图片描述
使用如下命令可查看当前节点的信息,包括swarm状态及其管理的节点数量

docker info

4、将其他节点加入集群

加入集群需要使用上文中选举manager时生成的那行命令,如果忘记了,可使用如下命令进行查询

docker swarm join-token manager
或
docker swarm join-token worker   直接添加为worker

在这里插入图片描述
在需要加入集群的节点的机器中运行如下命令

docker swarm join --token SWMTKN-1-5le5ibcw8rxi7wu2a9an4qzhjckrct4gg613knvazymwkrkx7q-74eigtvsalhldyu0k1mnclf5p 192.168.0.101:2377

通过docker node ls我们可以看到默认加入集群的节点也是manager
在这里插入图片描述
在manager节点运行如下命令可以将新加入集群的节点释放掉manager资格,成为专职的worker,需要注意的是因为是通过主机名区分的,所以需要事先修改主机名,避免修改角色出错

docker node update worker1 --role worker

在这里插入图片描述

5、部署Portainer(manager节点操作)

load portainer镜像

docker load < portainer.tar

启动portainer

docker run -d -p 9000:9000 --restart=always --name portainer portainer/portainer:latest

6、portainer web配置

浏览器访问ip+9000端口打开portainer页面

(1)设置密码
在这里插入图片描述
(2)配置集群的管理方式,选择Remote,配置一个Name,Endpoint URL填写集群中manager节点的URL,注意端口对应,一般为2375
在这里插入图片描述
在这里插入图片描述
(3)点击左侧的“Endpoints”可以将集群中其他节点加入
在这里插入图片描述

原创文章 91 获赞 183 访问量 59万+

猜你喜欢

转载自blog.csdn.net/ywd1992/article/details/92803918