Files
lpt-fe/DEPLOYMENT_PROGRESS.md
T

101 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 部署流水线问题排查进度
**日期**: 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 配置缺失。