告别手动配置!My-Traefik 自动化部署方案
作为个人开发者,你是否也经历过这些烦恼?
- 每次部署新服务都要手动配置 SSL 证书
- 不同环境的域名证书需要重复申请
- 在多个命名空间之间同步证书导致配置混乱
- 证书过期忘记续期导致服务中断
这就是我开发这个 Traefik 自动化部署方案 的初衷。下面通过一个真实场景,带你体验自动化带来的改变。
传统方案 vs 自动化方案
假设我们要部署一个个人博客系统:
传统做法(手动配置)
- 申请域名:blog.example.com
- 登录 Cloudflare 控制台配置 DNS
- 手动生成 Let's Encrypt 证书
- 创建 Kubernetes Secret 存储证书
- 配置 Ingress 规则
- 每 90 天重复步骤 3-5
使用本方案
# 1. 配置 values.yaml
cat <<EOF > values.yaml
config:
domain: example.com
https:
enabled: true
cloudflareApiToken: $CLOUDFLARE_TOKEN
email: me@example.com
EOF
# 2. 一键部署
helm install my-traefik ./my-traefik -f values.yaml
# 3. 完成!后续所有 *.example.com 的子域名自动获得证书
方案核心优势
🌟 一劳永逸的证书管理
- 自动签发通配符证书(支持 *.example.com)
- 证书到期前自动续期
- 多子域名无需重复配置
# 自动生成的证书配置样例
apiVersion: cert-manager.io/v1
kind: Certificate
spec:
commonName: "*.example.com" # 通配符域名
dnsNames: ["*.example.com"] # 覆盖所有子域名
🚀 跨命名空间支持
当你的项目扩展到多个环境时:
traefik:
providers:
kubernetesCRD:
namespaces:
- blog # 博客系统
- dashboard # 监控面板
- api # 后端服务
所有命名空间自动获得统一的证书管理,无需逐个配置。
快速入门指南
第一步:准备 Cloudflare Token
- 登录 Cloudflare 控制台
- 进入「API 令牌」页面
- 创建具有 DNS 编辑权限 的令牌
第二步:部署方案
# 克隆仓库
git clone https://github.com/your-repo/my-traefik.git
cd my-traefik
# 创建配置文件(记得替换实际参数)
echo "config:
domain: mydevblog.com
https:
enabled: true
cloudflareApiToken: YOUR_TOKEN
email: your@email.com" > config.yaml
# 执行部署
helm install traefik . -f config.yaml
第三步:验证部署
检查自动生成的证书:
kubectl get certificate -A
应该看到类似输出:
NAMESPACE NAME READY SECRET AGE
default wildcard-tls-certificate True wildcard-tls-certificate 5m
进阶功能体验
为管理后台添加基础认证
# 启用认证
config:
auth:
enabled: true
username: admin
password: securepassword
# 生成后的 Secret 会自动挂载到 Traefik
访问服务时就会看到认证弹窗,有效防止未授权访问。
项目带来的改变
自从使用这个自动化方案后:
- 部署新服务时间从 1小时 缩短到 5分钟
- 证书相关运维工作减少 90%
- 再没有因证书过期导致的故障
开源之约
这个项目已在 GitHub 开源,欢迎开发者们:
- ⭐️ 收藏项目仓库
- 🐛 提交 Issue 反馈问题
- 💻 发起 PR 贡献代码
项目地址:my-traefik