docker-swarm 搭建ngnix集群

我的三台测试机

IP 角色
192.168.56.104 manager
192.168.56.103 worker
192.168.56.101 worker

在创建集群前,如果开启了防火墙,请确认三台主机的防火墙能让swarm需求的端口开放,需要打开主机之间的端口,以下端口必须可用。在某些系统上,这些端口默认为打开。

2377:TCP端口2377用于集群管理通信
7946:TCP和UDP端口7946用于节点之间的通信
4789:TCP和UDP端口4789用于覆盖网络流量
可以直接禁用系统防火墙来让这些端口通信不受限制,一般测试环境我们都会禁用防火墙。

systemctl stop firewalld(立即生效)
systemctl disable firewalld(重启生效)

docker环境请自行安装。
常用命令
在Docker Swarm中经常使用的主要有docker swarm、docker node、docker service、docker stack。
初始化swarm
1、在主节点 上执行初始化命令:

docker swarm init --advertise-addr 192.168.56.104(本机IP)

2、在其它两台worker主机上(192.168.56.103、192.168.56.101)分别执行加入swarm:

[root@swarm-m ~]# docker swarm init --advertise-addr 172.16.10.85
Swarm initialized: current node (mclobj2doj65sek345mjkklfo) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-42w2dmkv2u18k9d6vi65rhqggjcqcc31iijnecd4bbi43bmom2-b3o89g28thkcken0v3qxtczuj 192.168.56.104:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

3、如果后续我们有新的主机被当做manager、worker节点想要加入到集群中来,但要不记得当时创建集群时的token,在manager主机上执行以下命令:
docker swarm join-token manager
docker swarm join-token worker

4、在192.168.56.104 上执行查看swarm的节点:

[root@bogon ~]# docker node ls
ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
h27qpxwdkbyk2klzxkylnngqq *   bogon               Ready               Active              Leader              19.03.6
je93cexkvsamc570oka2z3klr     bogon               Ready               Active                                  19.03.6
rxv8ufik1xbz8nn6k11c6o80y     bogon               Ready               Active                                  19.03.7

5、在192.168.56.104 上执行创建自定义的overlay网络:

docker network create --driver overlay --subnet 10.10.10.0/16 my-overlay-network

6、在192.168.56.104 上执行查询swarm网络 docker network ls

[root@bogon ~]# docker network ls
NETWORK ID          NAME                 DRIVER              SCOPE
dc78e9edb3d3        bridge               bridge              local
1f265a30c04e        dce_default          bridge              local
9dbc4cf0feb2        docker_gwbridge      bridge              local
ce3d745391ab        home_default         bridge              local
7c890d873cfd        host                 host                local
sr0o2r1ru1pl        ingress              overlay             swarm
nh1arm6lljgf        my-overlay-network   overlay             swarm
106be1ff3e39        none                 null                local
b42e0d40642a        zoo_kafka            bridge              local

7、创建一个nginx service

docker pull daocloud.io/nginx

8、执行命令创建service:

 docker service create --name webapp-nginx --replicas 3 --network my-overlay-network --publish 8089:80 daocloud.io/nginx

docker service create中的参数:
–name 服务名
–replicas 是创建的副本的数量
–network 是使用的网络
–publish 是服务公开的端口 :
9、查看webapp-nginx服务任务分配到的节点
docker service ps webapp-nginx
10、外部访问公开端口8089
http://192.168.56.104:8089
http://192.168.56.103:8089
http://192.168.56.101:8089

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值