# 03-05-k3s Cloudflare Tunnel 配置接入 > 本文只讲 K3s 侧如何接入 Cloudflare Tunnel(`cloudflared` 部署、验证、排查)。 ## 前置条件 - 已完成 `01-04-cloudflare-tunnel.md` - 已拿到 Tunnel Token 或凭据文件 - Traefik 已可用(单节点/多节点均可) ## 操作步骤 1. 在 K3s 中创建保存 token/凭据的 Secret + Deployment。**唯一真源**:[`ansible/files/cloudflare-tunnel/cloudflared.yaml`](../ansible/files/cloudflare-tunnel/cloudflared.yaml)(替换 `TUNNEL_TOKEN` 占位符)。 2. 部署 `cloudflared` 并确保重启后自动生效(按实际路径选择其一复制执行): ```bash # 默认路径 kubectl apply -f /var/lib/rancher/k3s/server/manifests/cloudflared.yaml kubectl -n kube-system rollout status deploy/cloudflared ``` ```bash # 自定义 data-dir(如 /storage) kubectl apply -f /storage/server/manifests/cloudflared.yaml kubectl -n kube-system rollout status deploy/cloudflared ``` 3. 将 `cloudflared.yaml` 放入上述 manifests 目录后,K3s 重启时会自动加载。 建议要点: - 使用官方 `cloudflared` 镜像 - Secret 不写死在明文 YAML - `cloudflared` 放在 `kube-system` 或专用 namespace ## 验证命令 ```bash kubectl -n kube-system get pods | grep cloudflared kubectl -n kube-system logs deploy/cloudflared --tail=100 ``` ## 预期 - 日志中可见 tunnel connected - 访问域名可到达 Traefik 路由 ## 失败排查 - 域名解析正常但访问超时:先看 Tunnel 状态与 `cloudflared` 日志 - 返回 `404`:通常是 Traefik 路由未命中 - 返回 `502`:优先排查后端链路(`06-01-k3s-networkpolicy-故障排查.md`) ## 下一步 - `05-03-k3s-安装gitlab-含runner.md` - `05-01-k3s-部署homer首页面板.md`