traefik使用etcd存储配置--实例演示

网友投稿 697 2022-09-28

traefik使用etcd存储配置--实例演示

traefik使用etcd存储配置--实例演示

traefik 使用etcd 作为后端配置存储配置实例

功能测试目的:

1:Traefik 作为web服务,使用etd库作为配置统一存储空间,实现traefik服务可以方便的增删节点,解耦traefik服务启动后服务配置的问题。2:Traefik 使用帮我们自动申请一个ssl证书.

测试步骤如下:

1:安装 traefik 1.7+ 2:安装 etcd3:安装 Etcdkeeper4:配置 traefik 对接 etcd 库

演示环境

使用AWS云平台测试:云主机一台、配置公网IP地址,开放80 443 8080 1180 端口traefik v1.7+ web 服务占用端口:80 443 traefik 管理页面 8080配置目录 /etc/traefik Etcd:高可用、强一致性的服务发现存储仓库,作为traefik 后端配置存储 占用端口:外部客户端连接 2379etcd服务间通信 2380Etcdkeeper:Etcd web界面,支持v3的api占用端口(可以自己设置):11800Docker :用于模拟快速启动一个后端web服务镜像地址:containous/whoami

安装 traefik

占用端口:80 443 traefik 管理页面 8080配置目录 /etc/traefik

步骤如下:

wget traefik_linux-amd64 /usr/bin/traefikchmod 755 /usr/bin/traefik mkdir -p /etc/traefik touch /etc/traefik/acme.jsonchmod 755 /etc/traefik chmod 600 /etc/traefik/acme.json

验证版本

[root@ip-10-3-1-119 traefik]# traefik versionVersion: v1.7.19Codename: maroillesGo version: go1.12.12Built: 2019-10-28_02:07:32PMOS/Arch: linux/amd64

至此traefik配置完毕 !!!

启动后端Web服务,为后面的测试做准备

docker run -d -p 8880:80 containous/whoamidocker run -d -p 8890:80 containous/whoami

主配置文件

vi /etc/traefik/traefik.toml

#开启debug 模式,方便调试,Default,falsedebug = true#日志级别, "DEBUG", "INFO", "WARN", "ERROR", "FATAL", "PANIC"logLevel = "INFO"# 同时支持= ["" [entryPoints. address = ":80" #启用压缩传输 compress = true # [entryPoints. entryPoint = " [entryPoints. address = ":443" #启用压缩传输 compress = true [entryPoints.配置自动Let's Encrypt证书[acme]email = "kjh@mail.com"##加密文件的存储位置storage = "/etc/traefik/acme.json"##证书类型,必需指向到一个443端口entryPoint = "= false#自动为acme.entryPoint下的新域名申请证书onHostRule = true [acme. #acme 验证方式支持 dns 、 # entryPoint="开启日志功能#成功访问日志[accessLog]filePath = "/var/log/traefik/acceslog.txt"format = "json"#服务启动日志[traefikLog]filePath = "/var/log/traefik/traefik.log"# 开启web管理端[web]address = ":8080"#设置RESTAPI 为只读模式readOnly = true[web.auth.basic]#test/test 登陆名/密码 可用openssl生成 #users = ["test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/"]#启用详细信息输出,会在管理界面下方打印一些错误信息,提供参考;[web.statistics]ecentErrors = 10#开启api,修改服务配置,生产环境推荐添加加密认证[api] entryPoint = "traefik" #开启管理面板 dashboard = true debug = true#使用文件方式管理配置[file]#在指定目录查找配置文件directory = "/etc/traefik/rules"#监视文件变更watch = true#使用etcd作为存储开启此配置,需要与文件管理配置同时开启,不然无法正常同步配置[etcd]#节点地址:端口endpoint = "10.3.1.119:2379"#强制使用v3版本apiuseAPIV3 = true#监视配置变更watch = true

添加反向代理配置文件

/etc/traefik/rulesweb域名为:kjh.pt1.jp后端服务:/etc/traefik/rules/kjh.pt1.toml添加配置如下:

[frontends] [frontends.ft01] backend = "bk01" [frontends.ft01.routes.rule_1] rule = "Host:kjh.pt1.jp,kjh01.pt1.jp"[backends] [backends.bk01] [backends.bk01.servers.server1] url = " weight = 10 [backends.bk01.servers.server2] url = " weight = 10

注意:上面配置的域名需要先在dns 做解析,指向traefik节点IP地址,不然无法正常申请ssl证书!!!

安装etcd

yum install etcd -yvi /etc/etcd/etcd.conf修改 ttp://localhost:2379 为 daemon-reloadsystemctl start etcdsystemctl status etcd

安装 etcdkeeper

wget etcdkeeper-v0.7.5-linux_x86_64.zipcd etcdkeeperchmod 755 etcdkeeper#后台启动./etcdkeeper -p 11800 &

浏览器访问:

​​etd 库内容为正常,但此时并无文件;

将traefik 配置将存储至etcd

同步traefik 配置至 etcd库

traefik storeconfig -c traefik.toml

[root@ip-10-3-1-119 traefik]# traefik storeconfig traefik.toml........0,"DebugLogGeneratedTemplate":false,"Directory":"/etc/traefik/rules","TraefikFile":""}2020/01/05 21:19:22 Writing config to KV

验证

1:导入配置时返回信息无报错,返回 Writing config to KV;2:访问etcd ui ,查看traefik配信息是否导入成功,显示目录大致如下;

/etctraefik

启动traefik 服务

执行traefik 命令即可,默认会到/etc/traefik/目录下寻找配置文件。

总验

访问traefik 节点IP地址:8080 可以看到 文件的配置和KV 库的配置,配置文件配置的域名可以正常访问。效果图如下:

参考文档:

​​https://zhuanlan.zhihu.com/p/74042144​​

​​​https://ystyle-/2017/12/08/traefik-getting-start/​​

​​​https://jupyterhub-traefik-proxy.readthedocs.io/en/latest/toml.html​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:容器化时代ab压测工具新用法
下一篇:cassandra-stress 压测使用介绍
相关文章

 发表评论

暂时没有评论,来抢沙发吧~