treafik2+swarm搭建运维平台
思维导图

直接上搭建命令
环境依赖
用vmware搭建三台ubuntu主机,配置固定ip并安装好docker。
master 192.168.154.200
node1 192.168.154.201
node2 192.168.154.202
一、搭建swarm环境
1、初始化swarm集群 docker swarm init --advertise-addr 192.168.154.200 2、 两个node节点执行添加节点命令 docker swarm join --token SWMTKN-1-26u6knpsjtb5u1t77bry4yucl9w1gjkve73vpmmyyb4s4jykoq-eek4e8zcxhdw98m7rkfc2cv0m 192.168.154.200:2377 集群搭建好了 就是这样简单 验证一下 docker node ls

二、部署traefik2
1.创建2个不同的network,区别test、prod网络可以进行集群内网络隔离 docker network create --driver=overlay traefik_prod docker network create --driver=overlay traefik_test
2.部署traefik同时监听上面两个网络(注意要部署到主节点上,官网的文档有问题 )
docker-compose-traefik.yml
version: '3'
services: reverse-proxy: # The official v2 Traefik docker image image: traefik:v2.8 # Enables the web UI and tells Traefik to listen to docker command: - --api.insecure=true - --providers.docker.swarmMode=true ports: # The HTTP port - "80:80" # The Web UI (enabled by --api.insecure=true) - "8080:8080" volumes: - /var/run/docker.sock:/var/run/docker.sock deploy: placement: constraints: - node.role == manager labels: - "traefik.enable=true" - "traefik.http.routers.api.rule=Host(`traefik.yourdomain.com`)" - "traefik.http.routers.api.service=api@internal" # Let the dashboard access the traefik api networks: - traefik_prod - traefik_test networks: traefik_prod: external: true traefik_test: external: true
3.部署
docker stack deploy -c docker-compose-traefik.yml traefik
4.验证
5.访问traefik管理页面
http://192.168.154.200:8080/dashboard/#/http/services
三、部署测试demo
1.部署2个nginx
compose.yml
version: '3'
services:
container-prod:
image: nginx
networks:
- traefik_prod
deploy:
replicas: 2
labels:
- traefik.enable=true
- traefik.http.routers.container-prod.rule=Host(`nginx.com`)
- traefik.http.services.container-prod-service.loadbalancer.server.port=80
networks:
traefik_prod:
external: true
2.部署
docker stack deploy -c compose.yml test
3.验证一下
docker stack ps test
4.treafik管理页面看一下

搞定了 写的可能有点仓促了 大体思路是这样 。
posted on 2022-08-12 17:47 yelang_001 阅读(265) 评论(0) 收藏 举报
浙公网安备 33010602011771号