docs: 保存部署流水线问题排查进度

This commit is contained in:
2026-07-19 23:07:49 +08:00
parent 0a82bac723
commit 4bda9d6ba2
+100
View File
@@ -0,0 +1,100 @@
# 部署流水线问题排查进度
**日期**: 2026-07-19
## 问题概述
K8s 部署时出现 `ImagePullBackOff` 错误,容器无法拉取私有 Registry 镜像。
## 根本原因
**Docker Registry 认证问题**
- Registry (`192.168.123.199:5000`) 需要认证(用户名: `admin`
- Gitea Actions workflow 使用 `secrets.REGISTRY_USERNAME``secrets.REGISTRY_PASSWORD`
- **这两个 secrets 在 Gitea 项目中尚未配置**,导致:
1. workflow 的 `docker login` 失败
2. `docker push` 虽然执行但实际未推送成功
3. K8s 拉取镜像时认证失败 → `authorization failed: no basic auth credentials`
## 已完成的修复
### 1. Gitea Actions 配置修复(已推送)
-**lpt-fe**: 修复 `github.sha``gitea.sha`
-**lpt-be**: 修复 `github.sha``gitea.sha`kubectl 版本改为 `v1.30.0`
-**lpt-ai**: 修复 `github.sha``gitea.sha`kubectl 版本改为 `v1.30.0`
### 2. K8s Deployment 修复(已推送)
- ✅ 所有 Deployment YAML 添加 `imagePullSecrets: [name: regcred]`
- ✅ workflow 自动创建 `regcred` secret(使用 Gitea secrets
### 3. Git 合并冲突
- ⚠️ **lpt-ai****lpt-be** 的 workflow 文件存在合并冲突标记
- 需要手动解决冲突后重新提交
## 待完成任务
### 关键步骤:配置 Gitea Secrets
需要在 Gitea 中为每个项目添加 Registry 认证信息:
**项目列表**:
- `lpt-fe`
- `lpt-be`
- `lpt-ai`
**操作步骤**(每个项目重复):
1. 进入项目页面(如 `http://192.168.123.199:3000/cat/lpt-fe`
2. Settings → Secrets
3. 添加两个 secrets
- Name: `REGISTRY_USERNAME`, Value: `admin`
- Name: `REGISTRY_PASSWORD`, Value: `<htpasswd 对应的明文密码>`
**Registry 密码位置**: `/vol1/1000/registry/auth/htpasswd`(服务器 `192.168.123.199`
### 次要任务
1. **解决 Git 合并冲突**
- 文件: `lpt-ai/.gitea/workflows/deploy.yml:34-40`
- 文件: `lpt-be/.gitea/workflows/deploy.yml:43-48`
- 清理 `<<<<<<< HEAD`, `=======`, `>>>>>>> xxx` 标记
2. **验证部署**
- 配置 secrets 后触发一次提交
- 检查 workflow 日志中 `docker login``docker push` 是否成功
- 检查 K8s Pod 是否正常启动:`kubectl get pods -n lpt`
## 其他发现的问题(非紧急)
### Jenkins 流水线(lpt-fe, lpt-be
- 硬编码镜像标签(`0.0`),无法追溯版本
- lpt-be 健康检查时间过短(5秒),Spring Boot 启动通常需要 10-30 秒
- lpt-be Docker 网络配置可能冲突
### 流水线通用问题
- 缺少镜像清理机制
- 缺少部署失败回滚机制
## 技术细节
### Registry 认证验证
```bash
curl -I http://192.168.123.199:5000/v2/
# 返回: 401 Unauthorized
# Www-Authenticate: Basic realm="Registry Realm"
```
### htpasswd 文件内容
```
admin:$2y$05$PlW.emHsl9qePGTsQPNAzecCkyNWKFO252EpjcRNV9vC8Z9AkGGZ.
```
## 下一步操作清单
1. [ ] 在 Gitea 中配置 3 个项目的 Registry secrets
2. [ ] 解决 lpt-ai 和 lpt-be 的 workflow 合并冲突
3. [ ] 提交修复并触发 workflow
4. [ ] 验证部署成功
---
**备注**: 所有 K8s 配置文件修改已完成并推送到 Gitea,核心问题在于 Gitea Secrets 配置缺失。