docker-swarm的web集群项目

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

Docker Compose是一个描述和运行多个Docker容器的工具,而Docker Swarm是一个Docker原生的集群管理工具,可以方便地管理多个Docker节点。在Docker Swarm集群中使用Docker Compose可以快速地构建和部署服务。 以下是在Docker Swarm集群中使用Docker Compose部署服务的一些步骤: 1. 编写Docker Compose文件:在本地编写一个Docker Compose文件,描述需要运行的服务、镜像和配置等信息。例如,下面是一个简单的Docker Compose文件: ``` version: '3.7' services: web: image: nginx:alpine deploy: replicas: 2 resources: limits: cpus: '0.5' memory: 512M restart_policy: condition: on-failure ports: - "80:80" - "443:443" ``` 2. 上传Docker Compose文件:将Docker Compose文件上传到Swarm集群管理节点。 3. 部署服务:使用`docker stack deploy`命令部署服务,例如: ``` docker stack deploy --compose-file docker-compose.yml my-app ``` 其中,`--compose-file`参数指定了使用的Docker Compose文件,`my-app`是服务的名称。 4. 验证服务:使用`docker service ls`命令可以查看部署的服务列表,使用`docker service ps <service>`命令可以查看服务的运行状态。 ``` docker service ls docker service ps my-app_web ``` 以上就是在Docker Swarm集群中使用Docker Compose部署服务的一些步骤。通过使用Docker Compose可以快速地构建和部署服务,而Docker Swarm可以方便地管理和扩展服务,两者结合使用可以大大提高服务的可靠性和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值