Traefik 是一个现代化的反向代理和负载均衡工具
参考资料
Traefik 简介
Traefik 是一个现代化的反向代理和负载均衡工具,专为云原生和微服务架构设计。它支持自动服务发现,动态配置更新,并集成了多种后端(如 Docker、Kubernetes、Consul 等)。
特点
自动服务发现:自动检测容器或服务的变化并更新路由规则。
动态配置:无需重启即可应用配置更改。
多后端支持:支持 Docker、Kubernetes、Rancher、Consul、Etcd 等。
内置仪表盘:提供可视化监控和管理界面。
支持多种协议:HTTP/2、WebSocket、gRPC 等。
Let's Encrypt 集成:自动管理 TLS 证书。
轻量级:Go 语言编写,资源占用低。
最新更新内容及时间
最新版本:v2.10.7(截至 2024 年 6 月)
更新内容:
修复若干 Bug。
优化性能及稳定性。
改进 Kubernetes CRD 支持。
更新依赖库。
镜像下载地址
Docker Hub:
docker pull traefik:latest
官方镜像:
traefik
带 Dashboard 的镜像:
traefik:v2.10.7
官网地址
文档地址
Docker 安装示例
docker run -d \ -p 80:80 \ -p 8080:8080 \ -v /var/run/docker.sock:/var/run/docker.sock \ --name traefik \ traefik:v2.10.7 \ --api.insecure=true \ --providers.docker=true
8080
端口用于 Dashboard(默认地址:http://<your-server-ip>:8080/dashboard/
)。--api.insecure=true
允许 HTTP 访问 Dashboard(生产环境建议使用 HTTPS)。
YAML 配置示例
traefik.yml
示例:
entryPoints: web: address: ":80" websecure: address: ":443" providers: docker: endpoint: "unix:///var/run/docker.sock" exposedByDefault: false api: dashboard: true insecure: true certificatesResolvers: letsencrypt: acme: email: "your-email@example.com" storage: "/letsencrypt/acme.json" httpChallenge: entryPoint: "web"
常见错误及解决方法
Dashboard 无法访问
确保
--api.insecure=true
已启用。检查防火墙是否开放
8080
端口。TLS 证书申请失败
确保域名解析正确,且
HTTP-01
或DNS-01
挑战配置无误。检查
acme.json
文件权限(需600
)。Docker 服务未发现
确保
docker.sock
挂载正确:volumes: - /var/run/docker.sock:/var/run/docker.sock
路由 404 错误
检查容器标签(Labels)是否配置正确,例如:
labels: - "traefik.http.routers.myapp.rule=Host(`example.com`)"
Traefik 日志报错
使用
docker logs traefik
查看详细错误信息。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。