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
# 在管理节点修改/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集群 -->在管理节点上
[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 # 服务不会因为一台机器宕机而停止 -->实现高可用* 团队越大,冗余能力越强
# 开启两块网卡 桥接模式
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