Kubernetes回滚导致Git代码与线上版本不一致问题分析

在基于 Kubernetes 的 CI/CD 流程中,版本管理是非常重要的一环。 在实际搭建 HybridBlog 混合云 DevOps 平台过程中,我遇到了一个典型问题: Git仓库中的文章已经删除,但是通过 Kubernetes 版本回滚后,线上网站中的文章又重新出现。 这个问题表面看起来像是 Kubernetes 回滚异常,实际上属于 源码版本与运行环境版本不一致问题。 本文记录问题产生原因、排查过程以及解决方案。 一、项目CI/CD流程 当前博客系统采用以下发布流程: Gitea | | git push ↓ Jenkins | | docker build ↓ Harbor | | image push ↓ Kubernetes Deployment | ↓ Hugo静态博客 具体过程: 开发者修改 Hugo Markdown 文件 提交代码到 Gitea Gitea Webhook 触发 Jenkins Jenkins 拉取代码并构建 Docker 镜像 镜像上传到 Harbor Jenkins 使用 kubectl 更新 Kubernetes Deployment Pod 使用新镜像提供网站服务 正常情况下: Git代码 Docker镜像 Kubernetes运行版本 三者保持一致。 ...

July 27, 2026 · 2 min · HybridBlog

Prometheus + Grafana 监控平台部署

由于在该环境中Kubernetes的版本是 1.20.2,我们不使用最新版 kube-prometheus-stack,而采用兼容 1.20 的 Prometheus Operator + Grafana 部署方案,避免兼容性问题。对于 Kubernetes 1.20,官方兼容矩阵建议使用较早的 kube-prometheus release(如 release-0.8)。 15.1 准备环境 15.1.1 确认节点全部正常 在 ECS 上执行: kubectl get nodes 应该类似: NAME STATUS ROLES ecs-prod Ready control-plane k8s-node1 Ready k8s-node2 Ready 如果不是全部 Ready,就先不要继续。 kubectl get pods -A 确保: CoreDNS Calico Ingress 全部 Running。 15.1.2 确认资源充足 执行: kubectl top nodes 如果没有安装 metrics-server,不要紧,会提示: Metrics API not available 后续我们也可以补装。 15.1.3 创建监控命名空间 kubectl create namespace monitoring 查看: kubectl get ns 应该出现: monitoring 15.2 拉取node-exporter:v1.3.1镜像并推送Harbor 15.2.1 devops机器拉取镜像 你的 devops: ...

July 25, 2026 · 6 min · HybridBlog

HybridBlog项目 CI/CD 流程简介

整体架构: 开发人员 | | git push ↓ Gitea代码仓库 192.168.10.10:3000 | | Webhook通知 ↓ Jenkins 192.168.10.10:8080 | | Pipeline as Code ↓ Docker Build | ↓ Harbor私有镜像仓库 192.168.10.20 | | kubectl set image ↓ Kubernetes集群 | | ---------------- | | k8s-node1 k8s-node2 192.168.10.40 192.168.10.50 | ↓ HybridBlog网站服务

July 25, 2026 · 1 min · HybridBlog

Jenkins CI 持续集成平台部署

第五阶段:Jenkins CI 持续集成平台部署 5.1 阶段目标 本阶段主要完成 Jenkins 持续集成平台部署,为后续: Gitea代码仓库 ↓ Jenkins Pipeline ↓ Docker构建镜像 ↓ Harbor私有仓库 ↓ Kubernetes部署 建立 CI 环境。 5.2 部署环境规划 本阶段主要操作: 主机 IP 是否操作 作用 devops 192.168.10.10 ✅ Jenkins CI平台 harbor 192.168.10.20 验证 镜像仓库 ansible 192.168.10.30 ❌ 后续自动化部署 k8s-node1 192.168.10.40 ❌ Kubernetes节点 k8s-node2 192.168.10.50 ❌ Kubernetes节点 ecs-prod 云服务器 ❌ 后续公网发布 5.3 Jenkins部署流程 本阶段实施步骤: 编号 内容 5.1 检查 Docker 环境 5.2 创建 Jenkins 数据目录 5.3 Docker部署 Jenkins 5.4 初始化 Jenkins 5.5 安装 Jenkins 插件 5.6 配置 Jenkins 环境 5.7 创建 Pipeline 测试 5.8 阶段验收 5.4 devops环境检查 操作主机: ...

July 24, 2026 · 4 min · HybridBlog