From b65dcc9677cbd5429ace7028fab48269bbca2d0f Mon Sep 17 00:00:00 2001 From: opsx Date: Mon, 26 Oct 2026 17:09:47 +0000 Subject: [PATCH] =?UTF-8?q?refactor:=20=E9=95=9C=E5=83=8F=E5=90=8D=20lghos?= =?UTF-8?q?t/opsxloki=20=E2=86=92=20lghost/lokistack=EF=BC=88=E8=B7=9F?= =?UTF-8?q?=E9=9A=8F=E9=A1=B9=E7=9B=AE=E6=9B=B4=E5=90=8D=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 只改镜像引用(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 拉到不存在的镜像导致服务中断 --- docker-compose.prod.yml | 4 ++-- docker-compose.yml | 2 +- docs/deployment/kubernetes.md | 4 ++-- kubernetes/README.md | 4 ++-- kubernetes/deployment.yaml | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index a659b25..e3e5849 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -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 diff --git a/docker-compose.yml b/docker-compose.yml index 584affb..8cd8093 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -20,7 +20,7 @@ services: dockerfile: Dockerfile args: TARGETARCH: ${TARGETARCH:-amd64} - image: lghost/opsxloki:latest + image: lghost/lokistack:latest container_name: opsxloki hostname: opsxloki diff --git a/docs/deployment/kubernetes.md b/docs/deployment/kubernetes.md index 48493e9..4a03cbe 100644 --- a/docs/deployment/kubernetes.md +++ b/docs/deployment/kubernetes.md @@ -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 ``` diff --git a/kubernetes/README.md b/kubernetes/README.md index 6afa0b2..3b80e59 100644 --- a/kubernetes/README.md +++ b/kubernetes/README.md @@ -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` | diff --git a/kubernetes/deployment.yaml b/kubernetes/deployment.yaml index 08ec35c..dcd87e4 100644 --- a/kubernetes/deployment.yaml +++ b/kubernetes/deployment.yaml @@ -30,7 +30,7 @@ spec: fsGroup: 1000 containers: - name: opsx-loki - image: lghost/opsxloki:latest + image: lghost/lokistack:latest imagePullPolicy: Always ports: - name: http