4.2 KiB
		
	
	
	
	
	
			
		
		
	
	
			4.2 KiB
		
	
	
	
	
	
Traefik 配置管理指南
🎯 配置与应用分离的最佳实践
⚠️ 重要:避免低逼格操作
❌ 错误做法(显得很low):
- 修改Nomad job文件来添加新域名
- 重新部署整个Traefik服务
- 把配置嵌入在应用定义中
✅ 正确做法(优雅且专业):
配置文件分离架构
1. 配置文件位置
- 动态配置: /root/mgmt/components/traefik/config/dynamic.yml
- 应用配置: /root/mgmt/components/traefik/jobs/traefik-cloudflare-git4ta-live.nomad
2. 关键特性
- ✅ 热重载: Traefik配置了file提供者,支持watch: true
- ✅ 自动生效: 修改YAML配置文件后自动生效,无需重启
- ✅ 配置分离: 配置与应用完全分离,符合最佳实践
3. 添加新域名的工作流程
# 只需要编辑配置文件
vim /root/mgmt/components/traefik/config/dynamic.yml
# 添加新的服务配置
services:
  new-service-cluster:
    loadBalancer:
      servers:
        - url: "https://new-service.tailnet-68f9.ts.net:8080"
      healthCheck:
        path: "/health"
        interval: "30s"
        timeout: "15s"
# 添加新的路由配置
routers:
  new-service-ui:
    rule: "Host(`new-service.git-4ta.live`)"
    service: new-service-cluster
    entryPoints:
      - websecure
    tls:
      certResolver: cloudflare
# 保存后立即生效,无需重启!
4. 架构优势
- 🚀 零停机时间: 配置变更无需重启服务
- 🔧 灵活管理: 独立管理配置和应用
- 📝 版本控制: 配置文件可以独立版本管理
- 🎯 专业标准: 符合现代DevOps最佳实践
当前服务配置
已配置的服务
- 
Consul集群 - 域名: consul.git-4ta.live
- 后端: 多节点负载均衡
- 健康检查: /v1/status/leader
 
- 域名: 
- 
Nomad集群 - 域名: nomad.git-4ta.live
- 后端: 多节点负载均衡
- 健康检查: /v1/status/leader
 
- 域名: 
- 
Waypoint服务 - 域名: waypoint.git-4ta.live
- 后端: hcp1.tailnet-68f9.ts.net:9701
- 协议: HTTPS (跳过证书验证)
 
- 域名: 
- 
Vault服务 - 域名: vault.git-4ta.live
- 后端: warden.tailnet-68f9.ts.net:8200
- 健康检查: /ui/
 
- 域名: 
- 
Authentik服务 - 域名: authentik.git-4ta.live
- 后端: authentik.tailnet-68f9.ts.net:9443
- 协议: HTTPS (跳过证书验证)
- 健康检查: /flows/-/default/authentication/
 
- 域名: 
- 
Traefik Dashboard - 域名: traefik.git-4ta.live
- 服务: 内置dashboard
 
- 域名: 
SSL证书管理
- 证书解析器: Cloudflare DNS Challenge
- 自动续期: Let's Encrypt证书自动管理
- 存储位置: /opt/traefik/certs/acme.json
- 强制HTTPS: 所有HTTP请求自动重定向到HTTPS
故障排除
检查服务状态
# 检查Traefik API
curl -s http://hcp1.tailnet-68f9.ts.net:8080/api/overview
# 检查路由配置
curl -s http://hcp1.tailnet-68f9.ts.net:8080/api/http/routers
# 检查服务配置
curl -s http://hcp1.tailnet-68f9.ts.net:8080/api/http/services
检查证书状态
# 检查SSL证书
openssl s_client -connect consul.git-4ta.live:443 -servername consul.git-4ta.live < /dev/null 2>/dev/null | openssl x509 -noout -subject -issuer
# 检查证书文件
ssh root@hcp1 "cat /opt/traefik/certs/acme.json | jq '.cloudflare.Certificates'"
查看日志
# 查看Traefik日志
nomad logs -tail traefik-cloudflare-v1
# 查看特定错误
nomad logs -tail traefik-cloudflare-v1 | grep -i "error\|warn\|fail"
最佳实践
- 
配置管理 - 始终使用dynamic.yml文件管理路由配置
- 避免修改Nomad job文件
- 使用版本控制管理配置文件
 
- 始终使用
- 
服务发现 - 优先使用Tailscale网络地址
- 配置适当的健康检查
- 使用HTTPS协议(跳过自签名证书验证)
 
- 
SSL证书 - 依赖Cloudflare DNS Challenge
- 监控证书自动续期
- 定期检查证书状态
 
- 
监控和日志 - 启用Traefik API监控
- 配置访问日志
- 定期检查服务健康状态
 
记住
配置与应用分离是现代基础设施管理的核心原则!
这种架构不仅提高了系统的灵活性和可维护性,更体现了专业的DevOps实践水平。