- 添加 Harbor 快速恢复脚本 (harbor-quick-restore.sh) - 添加完整恢复指南 (HARBOR-RESTORE-GUIDE.md) - 添加版本信息文件 (VERSION.md) - 更新 .gitignore 排除敏感数据 - 配置 harbor git remote - 修复 Cloudflare Tunnel 配置 系统重装后可通过以下命令快速恢复: git clone http://192.168.1.83:33000/gao/ljwx-harbor.git cd ljwx-harbor ./harbor-quick-restore.sh
5.0 KiB
5.0 KiB
AI Development Context - Deployment Scenario
生成时间: 2025-12-30 22:59:37 | 场景: 部署运维
Kubernetes 集群
集群信息
- 上下文: orbstack
- API Server: https://127.0.0.1:26443
- 节点数: 1
命名空间
argocd
cert-manager
data
default
dev
fastapi-template-dev
fastapi-template-prod
gitea-runner
health
infra
kube-node-lease
kube-public
kube-system
kubernetes-dashboard
learn
ljwx-project
ljwx-stock
logging
metallb-system
monitoring
异常 Pod(需要关注)
tiny ljwx-tiny-flyway-mr6ng 0/1 Completed 0 2d
trivy-system trivy-operator-77499dcb58-dkx27 0/1 InvalidImageName 0 42m
Helm Releases
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
ingress-nginx infra 1 2025-11-22 15:54:55.736249 +0800 CST failed ingress-nginx-4.14.0 1.14.0
ljwx-tiny tiny 1 2025-12-28 22:01:01.301504 +0800 CST deployed ljwx-tiny-1.0.0 1.0.0
loki logging 2 2025-12-16 08:33:33.406231 +0800 CST deployed loki-stack-2.10.3 v2.9.3
loki observability 1 2025-11-22 21:05:40.536107 +0800 CST deployed loki-stack-2.10.3 v2.9.3
monitoring observability 6 2025-11-24 21:28:27.733187 +0800 CST deployed kube-prometheus-stack-79.5.0 v0.86.2
my-superset default 1 2024-07-31 17:27:58.075699 +0800 CST failed superset-0.12.11 4.0.1
otel-collector tracing 1 2025-12-16 09:00:23.566606 +0800 CST deployed opentelemetry-collector-0.141.1 0.141.0
pcc ljwx-project 5 2025-12-25 08:20:06.131368 +0800 CST deployed project-control-center-0.1.0 0.1.0
postgres data 1 2025-11-22 21:04:12.401128 +0800 CST deployed postgresql-18.1.11 18.1.0
postgres-infra infra 1 2025-12-22 09:13:34.164178 +0800 CST deployed postgresql-18.1.9 18.1.0
rainbond-cluster default 1 2024-08-11 08:18:42.831934 +0800 CST failed rainbond-cluster-5.15.0 1.16.0
redis data 1 2025-11-22 21:04:48.945348 +0800 CST deployed redis-24.0.0 8.4.0
redis-infra infra 1 2025-12-22 07:47:32.272573 +0800 CST deployed redis-23.2.12 8.2.3
tempo tracing 1 2025-12-16 08:39:21.635037 +0800 CST failed tempo-1.24.1 2.9.0
Harbor 镜像仓库
- 状态: ✅ 运行中
- 地址: harbor.omniverseai.net:8080
- Projects: library (默认)
镜像缓存工具
cd /Users/brunogao/work/codes/tools/macos/k8s
# 自动修复 ImagePullBackOff
./cache-image.sh --update-deployment <namespace>/<deployment>
# 手动缓存镜像
./cache-image.sh nginx:alpine redis:7 mysql:8.0
# 批量缓存
./cache-image.sh -f images.txt
部署流程
1. 准备镜像
# 方式1: 本地构建
docker build -t myapp:v1.0 .
docker tag myapp:v1.0 harbor.omniverseai.net:8080/library/myapp:v1.0
docker push harbor.omniverseai.net:8080/library/myapp:v1.0
# 方式2: 缓存公共镜像
cd /Users/brunogao/work/codes/tools/macos/k8s
./cache-image.sh nginx:alpine
# 使用: harbor.omniverseai.net:8080/library/nginx:alpine
2. 创建部署配置
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
namespace: default
spec:
replicas: 2
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp
image: harbor.omniverseai.net:8080/library/myapp:v1.0
ports:
- containerPort: 8080
3. 部署和验证
# 应用配置
kubectl apply -f deployment.yaml
# 查看状态
kubectl get pods -w
# 查看日志
kubectl logs -f deployment/myapp
# 查看详情
kubectl describe pod <pod-name>
4. 故障排查
# ImagePullBackOff 修复
cd /Users/brunogao/work/codes/tools/macos/k8s
./cache-image.sh --update-deployment default/myapp
# 手动检查
kubectl describe pod <pod-name>
kubectl logs <pod-name>
kubectl get events --sort-by='.lastTimestamp'
快速参考
常用部署命令
| 操作 | 命令 |
|---|---|
| 应用配置 | kubectl apply -f file.yaml |
| 查看 Pod | kubectl get pods -A |
| 查看日志 | kubectl logs -f <pod> |
| 进入容器 | kubectl exec -it <pod> -- /bin/bash |
| 删除部署 | kubectl delete deployment <name> |
| 扩缩容 | kubectl scale deployment <name> --replicas=3 |
| 滚动更新 | kubectl set image deployment/<name> <container>=<image> |
镜像缓存快捷方式
# 添加到 ~/.zshrc
alias cache-img='cd /Users/brunogao/work/codes/tools/macos/k8s && ./cache-image.sh'
alias fix-pod='cd /Users/brunogao/work/codes/tools/macos/k8s && ./cache-image.sh --update-deployment'
# 使用
cache-img nginx:alpine
fix-pod default/myapp