refactor: 镜像名 lghost/opsxloki → lghost/lokistack(跟随项目更名)

只改镜像引用(8 处),K8s 资源名一律不动 —— 改了会丢数据/断服务:

改:
  kubernetes/deployment.yaml        image
  docker-compose.yml                image
  docker-compose.prod.yml           image ×2
  kubernetes/README.md              文档 ×2
  docs/deployment/kubernetes.md     文档 ×2

不改(重要):
  opsxloki-secrets    K8s Secret —— 改名会导致 JWT_SECRET/ENCRYPTION_KEY 重置,
                      历史加密的实例密码无法解密
  opsxloki-data       PVC —— 改名 = 新建空卷,数据全丢
  container_name      docker 容器名 —— 改名会让 docker exec/logs 命令失效
  app: opsx-loki      Pod label —— 改名要同步改 Service selector
  deployment 名称 opsx-loki —— 改名要重建 Deployment

⚠️ 部署顺序(本提交只改代码,尚未 apply 到 K8s):
  1) 推镜像 lghost/lokistack:latest 到 Docker Hub
  2) kubectl apply -f kubernetes/deployment.yaml
  3) 等 Pod 1/1 就绪
  4) 才能删除 lghost/opsxloki
  顺序颠倒会因 imagePullPolicy: Always 拉到不存在的镜像导致服务中断
This commit is contained in:
opsx committed 2026-10-26 17:09:47 +00:00
1 parent ec759cd36b
commit b65dcc9677
5 files changed
+8 -8

No files matched your search

+2 -2
View File
@@ -64,7 +64,7 @@ services:
dockerfile: Dockerfile
args:
TARGETARCH: ${TARGETARCH:-amd64}
image: lghost/opsxloki:latest
image: lghost/lokistack:latest
container_name: opsxloki-1
hostname: opsxloki-1
restart: unless-stopped
@@ -145,7 +145,7 @@ services:
dockerfile: Dockerfile
args:
TARGETARCH: ${TARGETARCH:-amd64}
image: lghost/opsxloki:latest
image: lghost/lokistack:latest
container_name: opsxloki-2
hostname: opsxloki-2
restart: unless-stopped
+1 -1
View File
@@ -20,7 +20,7 @@ services:
dockerfile: Dockerfile
args:
TARGETARCH: ${TARGETARCH:-amd64}
image: lghost/opsxloki:latest
image: lghost/lokistack:latest
container_name: opsxloki
hostname: opsxloki
+2 -2
View File
@@ -55,7 +55,7 @@ kubectl apply -f kubernetes/namespace.yaml \
- `replicas: 1`:JSON DB 单写者,多副本会互相覆盖。
- `strategy: Recreate`:滚动更新会同时挂同一个 RWO PVC。
- `DATA_DIR=/app/data`,挂 PVC;`runAsUser/fsGroup: 1000`。
- 镜像 `lghost/opsxloki:latest`,`imagePullPolicy: Always`。
- 镜像 `lghost/lokistack:latest`,`imagePullPolicy: Always`。
- 探针:`/api/v1/health`。
## 4. Service
@@ -160,7 +160,7 @@ kubectl -n log exec deploy/opsx-loki -- wget -qO- http://127.0.0.1:8080/api/v1/h
## 8. 升级
```bash
kubectl -n log set image deploy/opsx-loki opsx-loki=lghost/opsxloki:v0.2
kubectl -n log set image deploy/opsx-loki opsx-loki=lghost/lokistack:v0.2
kubectl -n log rollout status deploy/opsx-loki
```
+2 -2
View File
@@ -62,7 +62,7 @@ WITH_NODEPORT=1 bash kubernetes/install.sh
|----|------|
| Kubernetes | 1.20+ |
| StorageClass | **脚本自动探测**(default 注解 → 唯一 SC → 手动 `STORAGE_CLASS=`);自建集群无 SC 时会提前报错并给出解决方案,不会白等 |
| 镜像 | 节点可拉 `lghost/opsxloki:latest`(或改成自己的 Harbor/ACR/TCR/SWR) |
| 镜像 | 节点可拉 `lghost/lokistack:latest`(或改成自己的 Harbor/ACR/TCR/SWR) |
| 权限 | 有 `log` 命名空间的 create/apply 权限 |
## 脚本自动处理什么
@@ -385,7 +385,7 @@ spec:
|------|------|------|
| Pod `CreateContainerConfigError` | 缺 Secret `opsxloki-secrets` | 跑 `install.sh`,或手动 `kubectl create secret` |
| Pod `Pending`,PVC `Pending` | 集群没有默认 StorageClass | `pvc.yaml` 里填 `storageClassName` |
| Pod `ImagePullBackOff` | 节点拉不到 `lghost/opsxloki:latest` | 换镜像地址(ACR/TCR/SWR/Harbor) |
| Pod `ImagePullBackOff` | 节点拉不到 `lghost/lokistack:latest` | 换镜像地址(ACR/TCR/SWR/Harbor) |
| `kubectl apply -f kubernetes/` 报 ingress 错误 | 误把 examples 里的 ingress 一起 apply 了 | 只 apply 根目录的 yaml,ingress 单独处理 |
| 重启后数据丢失 | `/app/data` 没挂 PVC | 确认 `deployment.yaml` 的 volumeMounts |
| 两个 Pod 同时写 DB | 用了 RollingUpdate 或多副本 | 必须 `replicas: 1` + `strategy: Recreate` |
+1 -1
View File
@@ -30,7 +30,7 @@ spec:
fsGroup: 1000
containers:
- name: opsx-loki
image: lghost/opsxloki:latest
image: lghost/lokistack:latest
imagePullPolicy: Always
ports:
- name: http