日常更新

This commit is contained in:
2026-03-29 09:08:01 +08:00
parent 31709425e2
commit befdefd222
224 changed files with 7240 additions and 3297 deletions

View File

@@ -7,9 +7,10 @@
## TL;DR
- **自动化验收**`./scripts/verify.sh run 03-04`
- **关键前置**按本文「前置条件」准备环境变量/Secret/入口 IP
- **成功判据**:达到本文「预期」且 playbook 断言通过
- **自动化验收**`./ansible/bin/verify.sh run 03-04`
- **关键前置**Traefik 可用;域名托管 CloudflareZero Trust 中 Tunnel 与 Public Hostname 已配置
- **自动化所需环境变量**(见 `ansible/env/.env.verify.example`**`CF_TUNNEL_TEST_URL`**HTTPS 完整探针 URL**或** **`CF_TUNNEL_TEST_HOST`**(仅主机名,脚本拼成 `https://HOST/`**`TUNNEL_TOKEN`** 与集群内 `kube-system/cloudflared-credentials` **二选一**(已有 Secret 可不设 env。二者探针变量皆缺时验收为 **gated**。可选 **`CF_TUNNEL_CURL_INSECURE=1`** 为探针 curl 加 `-k`(仅排障)。
- **成功判据**:达到本文「预期」且 playbook 断言通过rollout + HTTPS 探针)
- **排障**:见本文「排障」
---
@@ -53,9 +54,17 @@ Traefik 是唯一入口。所有流量经 Tunnel 进入后,由 Traefik 的 Ing
### 3. 部署 cloudflared 到 K3s
1.**唯一真源** 复制清单:[`ansible/files/03-04/cloudflared.yaml`](../ansible/files/03-04/cloudflared.yaml)
2.`TUNNEL_TOKEN` 占位符替换为前述 Zero Trust 中复制的 Token
3. 应用并等待 Pod 就绪(按实际 manifests 路径选择其一
[`ansible/files/03-04/cloudflared.yaml`](../ansible/files/03-04/cloudflared.yaml) **仅含 Deployment****Secret 必须单独创建**(避免 `kubectl apply` 覆盖 token。推荐与 [`ansible/playbooks/verify/03-04.yml`](../ansible/playbooks/verify/03-04.yml) 一致:先 `cloudflared-credentials`,再 apply Deployment。
1. 在集群中创建 Secret`YOUR_TOKEN` 换成 Zero Trust 里的 Tunnel token
```bash
kubectl -n kube-system create secret generic cloudflared-credentials \
--from-literal=TUNNEL_TOKEN='YOUR_TOKEN' \
--dry-run=client -o yaml | kubectl apply -f -
```
2. 应用 Deployment 并等待就绪(按实际 manifests 路径选择其一):
```bash
# 默认路径
@@ -69,7 +78,7 @@ kubectl apply -f /storage/server/manifests/cloudflared.yaml
kubectl -n kube-system rollout status deploy/cloudflared
```
4.`cloudflared.yaml` 放入上述 manifests 目录后K3s 重启时会自动加载。
3.**Deployment 清单** 放入上述 manifests 目录后K3s 重启时会自动加载Secret 仍需单独存在)
建议要点:
@@ -89,7 +98,7 @@ Tunnel 后端应指向 **集群内的 Traefik 入口**,常用写法:
**和仓库里哪份 YAML 的关系**
- 本仓库的 [`cloudflared.yaml`](../ansible/files/03-04/cloudflared.yaml) **只** 定义 `cloudflared` 的 Deployment/Secret**不包含** Traefik ServiceTunnel 后端地址写的**集群已存在的 Traefik Service**,不是 `cloudflared.yaml` 里的某一行
- 本仓库的 [`cloudflared.yaml`](../ansible/files/03-04/cloudflared.yaml) **只** 定义 `cloudflared` 的 Deployment**Secret `cloudflared-credentials` 单独创建****不包含** Traefik ServiceTunnel 在 Zero Trust 里指向的仍**集群已存在的 Traefik Service**
- Traefik 的 **Service** 由 K3s 内置 TraefikHelmChart安装时创建资源名一般为 **`traefik`**,命名空间 **`kube-system`**。若你改过 chart 或 Service 名,以下 FQDN 与端口要以 **实际 `kubectl get svc` 输出** 为准。
**与 `kubectl get svc traefik -o yaml` 里哪些字段对应**