feat(logs): 数据源连接方式自动探测
CI / Backend (go vet + test) (push) Canceled after 0s
CI / Frontend (lint + build + test) (push) Canceled after 0s

部署完成及启动时实测 cluster-svc(API proxy) 与 url 直连,
选择可用方式并落库,兼容平台/Loki 分别在主机或集群内的组合。
This commit is contained in:
logan committed 2026-10-30 01:23:45 +08:00
1 parent b433b5f9dd
commit 7624baa564
3 files changed
+61

No files matched your search

+22
View File
@@ -236,3 +236,25 @@ kubectl -n log get secret lokistack-token -o jsonpath='{.data.token}' | base64 -
- 如果集群策略要求短期凭证,可改用 `kubectl -n log create token lokistack --duration=24h` 定期轮换。
- 上面的 Namespace 由管理员创建,平台 Token 本身没有集群级权限;只有确实需要平台自建命名空间时,才额外授予 `namespaces: create/get` 的 ClusterRole(create 无法按名称限制,预建 `log` 更安全)。
## 10. 数据源连接方式(部署后自动探测)
平台自动注册的数据源不再按部署模式硬编码,部署完成后会实测两种方式:
1. **cluster-svc**:经 kube-apiserver 的 service proxy 访问
`/<namespace>/services/loki:3100/proxy`,不依赖集群 DNS / ClusterIP 直通;
2. **url**:直接访问 Loki 地址(Service DNS、主机 IP:3100 或 Ingress 域名)。
先试 cluster-svc,失败再试 url,选通的写入数据源。
| 平台位置 | Loki 位置 | 实际可用方式 |
|---|---|---|
| 集群内 | 集群内 | cluster-svc |
| 主机 | 集群内 | cluster-svc(平台能访问 apiserver:6443 时);否则 url(NodePort/Ingress) |
| 集群内 | 主机 | url(主机 IP:3100,需网络可达) |
| 主机 | 主机 | url |
注意:
- `cluster-svc` 需要凭据具备 `services/proxy` 权限(本文第 9 节的 Role 已包含);
- 平台与 API Server / Loki 之间的网络必须放行;跨 VPC 时走 VPN、专线或公网 Ingress;
- 自动探测只决定“连接方式”,不会隐藏数据源;连接失败时“测试连接”会返回具体错误。