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

一. 环境准备。

  1. 准备三台机子,每台机子都要安装有docker
hostname IP
service1 192.168.56.10
service2 192.168.56.11
service3 192.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

猜你喜欢

转载自blog.csdn.net/qq_36453564/article/details/107665219
今日推荐