以下配置来自:https://blog.csdn.net/wave_sheep/article/details/104186192

感谢作者!

traefik.yaml

version: '3'

services:
reverse-proxy:
image: traefik:v2.8
command:
# 启用dashboard
- "--api.dashboard=true"
- "--providers.docker.swarmMode=true"
- "--providers.docker.exposedbydefault=false"
- "--providers.docker.network=traefik-public"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.le.acme.httpchallenge=true"
- "--certificatesresolvers.le.acme.httpchallenge.entrypoint=web"
- "--certificatesresolvers.letsencryptresolver.acme.email=填一个你自己的邮箱"
- "--certificatesresolvers.letsencryptresolver.acme.storage=/letsencrypt/acme.json"
ports:
- 80:80
- 443:443
volumes:
- traefik-certificates:/letsencrypt
- /var/run/docker.sock:/var/run/docker.sock:ro
networks:
- traefik-public
deploy:
placement:
constraints:
- node.role == manager
labels:
- "traefik.enable=true"
- "traefik.http.routers.http2https.rule=HostRegexp(`{any:.+}`)"
- "traefik.http.routers.http2https.entrypoints=web"
- "traefik.http.routers.http2https.middlewares=https-redirect"
- "traefik.http.middlewares.https-redirect.redirectscheme.scheme=https"
- "traefik.http.middlewares.https-redirect.redirectscheme.permanent=true"
# dashboard配置
- "traefik.http.routers.api.rule=Host(`traefik.xxxx.cn`)"
- "traefik.http.routers.api.entrypoints=websecure"
- "traefik.http.routers.api.tls.certresolver=le"
# 获取dashboard提供器
# PS: @后面变量表示提供者, 像之前的hello-world实际上省略了@docker
- "traefik.http.routers.api.service=api@internal"
# 基本验证中间件
- "traefik.http.routers.api.middlewares=api-auth"
# 配置用户名密码
# 这里默认是用户名密码都是admin
# 可以用htpasswd(https://httpd.apache.org/docs/2.4/programs/htpasswd.html)生成用户名密码
- "traefik.http.middlewares.api-auth.basicauth.users=admin:$$apr1$$8EVjn/nj$$GiLUZqcbueTFeD23SuB6x0"
# 最最关键的一步,创建一个noop虚服务的loadbalancer,port随便选,不然上面的label配置不会生效
- "traefik.http.services.noop.loadbalancer.server.port=9999" networks:
traefik-public:
external: true
volumes:
traefik-certificates:

部署: docker stack deploy --compose-file traefik.yaml test

hellWorld.yaml

version: '3'
services:
helloworld:
image: tutum/hello-world:latest
networks:
- traefik-public
deploy:
labels:
- "traefik.enable=true"
- "traefik.http.routers.helloworld.rule=Host(`nginx.xxxx.cn`)"
# 将对外暴露点改为websecure
- "traefik.http.routers.helloworld.entrypoints=websecure"
# 与traefik配置里创建的resolver名字对应
- "traefik.http.routers.helloworld.tls.certresolver=le"
- "traefik.http.services.helloworld.loadbalancer.server.port=80"
networks:
traefik-public:
external: true

部署: docker stack deploy --compose-file helloWorld.yaml test

【转载】docker swarm集群中部署traefik和其他服务的更多相关文章

  1. Docker Swarm集群中部署Traefik负载均衡器

    一.创建单节点的Docker Swarm集群 docker swarm init 二.在Swarm集群中创建一个网络 docker network create --driver=overlay tr ...

  2. 云计算之路-阿里云上-容器难容:优化自建 docker swarm 集群的部署

    在上周六遭遇阿里云容器服务 swarm 版的故障之后,我们决定还是走自建 docker swarm 之路,只要不是阿里云底层的问题,我们相信会找到办法解决或避开自建 docker swarm 不稳定的 ...

  3. 实操教程丨如何在K8S集群中部署Traefik Ingress Controller

    注:本文使用的Traefik为1.x的版本 在生产环境中,我们常常需要控制来自互联网的外部进入集群中,而这恰巧是Ingress的职责. Ingress的主要目的是将HTTP和HTTPS从集群外部暴露给 ...

  4. docker--搭建docker swarm集群

    10 搭建docker swarm集群 10.1 swarm 介绍 Swarm这个项目名称特别贴切.在Wiki的解释中,Swarm behavior是指动物的群集行 为.比如我们常见的蜂群,鱼群,秋天 ...

  5. 【故障公告】10:30-10:45 左右 docker swarm 集群节点问题引发故障

    非常抱歉,今天 10:30-10:45 左右由于 docker swarm 集群节点出现问题,造成除博客之外的站点出现访问异常,由此给您带来很大的麻烦,请您谅解. 故障开始时出现有时访问正常有时访问出 ...

  6. Docker Swarm——集群管理

    前言 之前在总结docker machine的时候,当时对docker理解还不够深入,甚至还不知道 docker machine 与 docker swarm 的区别. 在查阅资料以及官方文档之后,今 ...

  7. 云计算之路-阿里云上:节点 CPU 波动引发 docker swarm 集群故障

    非常抱歉,今天 10:05-10:20 左右,我们用阿里云服务器搭建的 docker swarm 集群又出现故障,又是因为突然的节点 CPU 波动. 受这次故障影响的站点有 闪存,博问,班级,园子,短 ...

  8. 云计算之路-阿里云上:部分服务器未及时续费造成docker swarm集群故障

    非常非常抱歉,由于我们的疏忽 —— docker swarm 集群中的 2 台服务器没有及时续费,造成在夜里0点被自动关机,从而引发整个 docker swarm 集群故障,造成今天凌晨 0:30 ~ ...

  9. 云计算之路-阿里云上:3个manager节点异常造成 docker swarm 集群宕机

    今天 11:29 - 11:39 左右,docker swarm 集群 3 个 manager 节点同时出现异常,造成整个集群宕机,由此给您带来很大的麻烦,请您谅解. 受此次故障影响的站点有:博问,闪 ...

  10. 搭建 Docker Swarm 集群

      准备三台主机 A:192.168.1.5 B:192.168.1.7 C:192.168.1.10   Docker Swarm集群中的节点主机开放以下三个端口 2377端口, 用于集群管理通信 ...

随机推荐

  1. python的grpc环境安装

    环境 ubuntu:bionic的docker image docker run -it ubuntu:bionic python的grpc环境安装 参考grpc官网:https://grpc.io/ ...

  2. 痞子衡嵌入式:Farewell, 我的写博故事2016-2019

    -- 题图:苏州天平山枫叶 现在是 2022 年末,痞子衡又要起笔博文年终总结了,看着 2020 年之前的博文总结缺失,始终觉得缺憾,所以写下此篇 2016 - 2019 总结合辑.2016 年之前, ...

  3. H5直播技术起航

    作者:京东科技 吴磊 音视频基本概念 视频格式就是通常所说的.mp4,.flv,.ogv,.webm等.简单来说,它其实就是一个盒子,用来将实际的视频流以一定的顺序放入,确保播放的有序和完整性. 视频 ...

  4. Java 进阶P-7.4+P-7.5

    JTable 用JTbale类可以以表格的形式显示和编辑数据. JTable类的对象并不存储数据,他只是数据的表现. 表格是 Swing 新增加的组件,主要功能是把数据以二维表格的形式显示出来,并且允 ...

  5. 你想成为.Net 7的技术高手吗?来这里看看

    前言: 你是否时常觉得,整天搞些Curd和增删改查.这些毫无意义的东西,完全是浪费生命.想要进阶,成为高手.却苦于找不到方法,没有一套系统性的东西. 有鉴于此,新建了一个群,方便大家一起交流和分享一些 ...

  6. 【分析笔记】Linux I2C-Tools 使用踩坑笔记

    一.踩坑缘由 在调试 I2C 器件时,我一般习惯于使用 i2cdetect 工具来确认芯片是否有应答,通常有应答之后,就会开始着手移植或者编写对应的驱动程序,但是在调试 sgp41 传感器时却不灵了. ...

  7. JSP第四次作业

    1. 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8&q ...

  8. Jenkins CLI命令行

    Jenkins CLI命令行 jenkins不光可以UI操作还提供了命令行接口 位置 首页->系统管理->工具和动作->Jenkins 命令行接口 在这个界面下载一个jenkins- ...

  9. linux-各个目录下重要文件、用户、用户组

    1.⽹络不通排查流程 1. 确认⽹关地址是否通畅 2. 确认⽹卡配置是否正确 3. 确认⽹络管理服务是否关闭 systemctl stop NetworkManager systemctl disab ...

  10. 不用Blazor WebAssembly,开发在浏览器端编译和运行C#代码的网站

    本文中,我将会为大家分享一个如何用.NET技术开发"在浏览器端编译和运行C#代码的工具",核心的技术就是用C#编写不依赖于Blazor框架的WebAssembly以及Roslyn技 ...