参考资料

  1. JupyterHub 是一个多用户版本的 Jupyter Notebook
  2. Known 是一个开源的内容发布平台
  3. Mono 是一个开源的 .NET 框架实现
  4. Hitch是一个高性能的HTTP代理服务器
  5. Gazebo是一款开源机器人模拟器
  6. ZeroTier 是一个开源的虚拟网络解决方案
  7. PyPy 是一个 Python 解释器的替代实现,使用 RPython(受限 Python)编写
  8. Rakudo Star是Raku编程语言的发行版

Traefik 简介

Traefik 是一个现代化的反向代理和负载均衡工具,专为云原生和微服务架构设计。它支持自动服务发现,动态配置更新,并集成了多种后端(如 Docker、Kubernetes、Consul 等)。


特点

  1. 自动服务发现:自动检测容器或服务的变化并更新路由规则。

  2. 动态配置:无需重启即可应用配置更改。

  3. 多后端支持:支持 Docker、Kubernetes、Rancher、Consul、Etcd 等。

  4. 内置仪表盘:提供可视化监控和管理界面。

  5. 支持多种协议:HTTP/2、WebSocket、gRPC 等。

  6. Let's Encrypt 集成:自动管理 TLS 证书。

  7. 轻量级: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"

常见错误及解决方法

  1. Dashboard 无法访问

    • 确保 --api.insecure=true 已启用。

    • 检查防火墙是否开放 8080 端口。

  2. TLS 证书申请失败

    • 确保域名解析正确,且 HTTP-01DNS-01 挑战配置无误。

    • 检查 acme.json 文件权限(需 600)。

  3. Docker 服务未发现

    • 确保 docker.sock 挂载正确:

      volumes:
        - /var/run/docker.sock:/var/run/docker.sock
  4. 路由 404 错误

    • 检查容器标签(Labels)是否配置正确,例如:

      labels:
        - "traefik.http.routers.myapp.rule=Host(`example.com`)"
  5. Traefik 日志报错

    • 使用 docker logs traefik 查看详细错误信息。