简单使用docker swarm内置负载均衡

一. 环境准备。
  1. 准备三台机子,每台机子都要安装有docker
hostnameIP
service1192.168.56.10
service2192.168.56.11
service3192.168.56.12
  1. 每个机子都要关闭防火墙。
//关闭防火墙
systemctl stop firewalld
//开机禁用防火墙
systemctl disable firewalld
二. 搭建集群。
  1. 拉取nginx镜像。
[root@service1 ~]# docker pull nginx
  1. 创建swarm集群。
//在service1初始化集群
[root@service1 ~]# docker swarm init --advertise-addr <本机的IP地址>
//service2和service3加入
[root@service2 ~]# docker swarm join --token SWMTKN-1-40jphkm3ttc1kswhjaaja9mbd4437rle3fe771cnq72adawgt2-92srn28ahrbj93eiyh8kzf51u 192.168.56.10:2377
[root@service3 ~]# docker swarm join --token SWMTKN-1-40jphkm3ttc1kswhjaaja9mbd4437rle3fe771cnq72adawgt2-92srn28ahrbj93eiyh8kzf51u 192.168.56.10:2377
//用此命令查看节点
docker node ls
//指定备用leader
docker node promote <hostname>
三. 创建service。
  1. 创建overlay网络(容器跨主机通信,可以省略)。
[root@service1 ~]# docker network create -d overlay <network名>
  1. 创建service
//创建
[root@service1 ~]# docker service create --network <network名> --name <自定义service名> -p <本机端口>:<容器端口> --detach=false <镜像名>
//扩容到3个服务器(一般是一个节点一个容器)
[root@service1 ~]# docker service scale nginx=3
//用此命令查看service
docker service ls
//查看service详情
docker service inspect <service名>
//查看service日志
docker service logs <service名>
三. 测试。
//因为我这边改了nginx的默认html
[root@service1 ~]# for i in {1..10}
> do
>     curl http://192.168.56.10:8080
> done
This is service1
This is service3
This is service2
This is service1
This is service3
This is service2
This is service1
This is service3
This is service2
This is service1
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值