Files
opsx 3c9388658b refactor: 资源名 opsx-loki/opsxloki → lokistack(线上已迁移完成)
【已在线完成,零数据丢失】
K8s ns=log 资源全部改名:
  Deployment  opsx-loki          → lokistack
  Service     opsx-loki          → lokistack
  Service     opsx-loki-nodeport → lokistack-nodeport
  PVC         opsxloki-data      → lokistack-data
  Secret      opsxloki-secrets   → lokistack-secrets
  Label       app: opsx-loki     → app: lokistack
  Ingress     log.astx.club 后端  → lokistack-nodeport:8080
  镜像        lghost/opsxloki     → lghost/lokistack
  docker-compose 卷/容器名同步更名

【保留不变(改了会出事)】
  namespace: log
  数据文件名 opsxloki.json(代码硬编码)
  容器内路径 /app/data

【迁移过程】
  1. 备份 PVC 数据(32KB) + Secret 原值 + 旧 yaml → /root/lokistack-migration-backup-20261026-171141
  2. scale 旧 Deployment → 0,等 Pod 消失
  3. 复制 Secret(JWT sha256 校验一致)
  4. 新建 PVC lokistack-data(Bound 30Gi cbs)
  5. 临时 Pod 恢复数据(chown 1000:1000,opsxloki.json 保留 0600)
  6. apply 新 Deployment → 1/1 Running
  7. 修复 Ingress 后端(TKE qcloud 要求 NodePort)→ CLB 恢复 200
  8. 删除旧 Deployment / 失效 Service

【验证】
  lokistack 1/1,0 重启,镜像 lghost/lokistack:latest(statically linked)
  /api/v1/health → {"status":"ok","version":"2.0.0"}
  /app/data/opsxloki.json 610B 完整(admin 用户 + 配置)
  http://log.astx.club/ → HTTP 200
  镜像加固:admin123=0、/app/backend/=0、initial-admin-password.txt 存在

【回滚兜底(建议 7 天后删)】
  pvc/opsxloki-data、secret/opsxloki-secrets

【文档】
  README 新增「从 opsx-loki 升级」章节:
  K8s 七步迁移脚本 + docker-compose 卷迁移命令
2026-10-26 17:16:15 +00:00

34 lines
1.1 KiB
YAML
Raw Permalink 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.
# 腾讯云 TKE 专用 Ingress 模板
#
# 与官方 ingress.yaml 的区别:
# 官方用 alb(阿里云)→ TKE 不支持
# TKE 用 ingressClassName: qcloud,且后端 Service 必须是 NodePort 类型
#
# 使用前:
# 1) 先创建 NodePort Service:kubectl apply -f kubernetes/service-nodeport.yaml
# 2) 把下面 host 改成你要用的域名
# 3) kubectl apply -f kubernetes/ingress-tke.yaml
# 4) 在腾讯云控制台/DNS 把该域名解析到 CLB 的公网 IP
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: lokistack
namespace: log
annotations:
# CLB 健康检查(可选,TKE 默认会用 TCP 检查)
cloud.tencent.com/health-check-path: /api/v1/health
cloud.tencent.com/health-check-interval: "10"
spec:
ingressClassName: qcloud
rules:
- host: loki.astx.club # ← 改成你的域名
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: lokistack-nodeport # ← 必须是 NodePort 类型 Service
port:
number: 8080