docker-swarm的web集群项目

tech2024-11-11  16

swarm/k8s -->docker --->container   swarm 是管理docker的编排工具,自带负载均衡和高可用性能

实验规划

swarm1 --->manager 192.168.0.121

swarm2 --->192.168.0.122  worker

swarm3 -->192.168.0.123  worker

swarm4 -->192.168.0.124  worker

一、安装manager和worker机器上安装swarm

[root@localhost ~]# yum install docker vim net-tools lsof -y # 安装docker --->swarm是docker的容器编排工具,所以需要安装docker [root@localhost ~]#yum install docker -y # 修改主机名 便于分辨机器 1.#vim /etc/hostname 2.# hostnamectl set-hostname swarm-manager # hostnamectl set-hostname swarm2 # hostnamectl set-hostname swarm3 # hostnamectl set-hostname swarm4 # 两者都可永久修改主机名

# 在管理节点修改/etc/hosts 文件

# 修改之后在管理节点上可以直接ping通其他主机

[root@localhost ~]# ping swarm-2

#将 /etc/hosts文件复制到所有的node主机

[root@localhost ~]# scp /etc/hosts root@192.168.0.122:/etc/hosts [root@localhost ~]# scp /etc/hosts root@192.168.0.123:/etc/hosts [root@localhost ~]# scp /etc/hosts root@192.168.0.124:/etc/hosts # 在所有机器上关闭防火墙 [root@manager43 ~]# service firewalld stop [root@manager43 ~]# systemctl disable firewalld

#所有机器上都关闭selinux

vim /etc/sysconfig/selinux

service docker start

#所有机器上启动docker

二、创建swarm并且添加节点

# 创建swarm集群     -->在管理节点上

[root@localhost ~]# docker swarm init --advertise-addr 192.168.0.121 Swarm initialized: current node (wbfffq9bduo1lj3e2qrpkwp7u) is now a manager. To add a worker to this swarm, run the following command: docker swarm join \ --token SWMTKN-1-32wt5ou9uffq8dvpv2ngu8mokvx526enfigsemp2mksm0zt6y8-a6zware3w43jqyopw1heqwrw7 \ 192.168.0.121:2377 To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

# 在其他机器上执行上面显示的语句加入到swarm集群

docker swarm join \ --token SWMTKN-1-32wt5ou9uffq8dvpv2ngu8mokvx526enfigsemp2mksm0zt6y8-a6zware3w43jqyopw1heqwrw7 \ 192.168.0.121:2377

# 在管理节点上可以查看有哪些节点已经被管理

[root@localhost ~]# docker info |grep swarm # 查看有哪些节点 docker node ls

# 在管理节点上创建一个overlay类型的网络 wsy_nginx

[root@localhost ~]# docker network create -d overlay wsy_nginx 3zts3m2t1sly0sx89ybzy3irp # 查看容器的网络类型 [root@localhost ~]# docker network ls

# 管理节点上分配任务

[root@localhost ~]# docker service create --replicas 4 --network wsy_nginx --name wsy_nginx1 -p 8000:80 nginx 4mfbtmygyf8ong1nhvye1cmhs # 4个 [root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE [root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES [root@localhost ~]# docker service ls ID NAME MODE REPLICAS IMAGE 4mfbtmygyf8o wsy_nginx1 replicated 2/4 nginx:latest

# 容器数量的扩展 -->增加到五个节点

[root@localhost ~]# docker service scale wsy_nginx1=5 wsy_nginx1 scaled to 5 [root@localhost ~]# docker service ps wsy_nginx1

尝试宕机一台worker节点机器,查看高可用效果

service docker stop # 管理节点上 [root@localhost ~]#docker service ps wsy_nginx1 [root@localhost ~]# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS kw30qj8tgzkh1na83fceyashr localhost.localdomain Down Active [root@localhost ~]# docker service ps wsy_nginx1 # 服务不会因为一台机器宕机而停止 -->实现高可用

* 团队越大,冗余能力越强

load balance 设置

# 开启两块网卡 桥接模式

ens33 192.168.0.126

ens37 192.168.82.127 -->本机网段

在负载均衡器 load balance上安装nginx # 下载epel源 yum install epel-release -y yum install nginx -y service nginx restart lsof -i:80 -->查看服务是否开启 ps aux|grep nginx load balance 上修改负载均衡配置 vim /etc/nginx.conf

此处可以看看官方文档

定义了一个负载均衡器 scapp1

最新回复(0)