GitLab 14 升级到 19 实战复盘(三):Kubernetes 增量切流、保留 IP 与回滚
复盘 GitLab 升级完成后的最终冻结、仓库增量同步、原 IP 切换、PV 重绑、六层验收和可执行回滚策略。
TOPIC COLLECTION
这个主题下共有 31 篇文章。
复盘 GitLab 升级完成后的最终冻结、仓库增量同步、原 IP 切换、PV 重绑、六层验收和可执行回滚策略。
物理节点重装 Rocky Linux 并加入 Kubernetes 后,kubelet 因 swap 被自动启用而无法就绪。本文给出从确认、修复到验收的最小闭环。
复盘一次多服务 Deployment 治理:合并重复模板,统一滚动发布、探针、JVM、缓存目录、安全上下文、消息并发、资源分档与跨节点策略。
通过 JVM 参数、mntr、快照和 Kubernetes requests 拆解 ZooKeeper 高内存现象,给出分阶段缩容、监控、滚动验证与持久化迁移方案。
从一台运行多年的 GitLab CE 14.9.3 开始,复盘如何先同版本迁入 Kubernetes,再按官方停靠点升级至 GitLab 19.2.1。
从 UnsatisfiedDependencyException 追到 mkdir failed,并系统处理 Nacos 缓存目录、server.use-forward-headers、commons-logging、nacos-logback.xml 和空 Class.forName。
Jenkins 控制器不是普通无状态 Deployment。本文复盘如何通过停写、数据校验、本地 PV 切换和 Agent 重连完成受控迁移。
复盘一次 Spring Boot 2 服务在 Kubernetes 中读取不到 Boot 3 Redis 配置的问题,覆盖属性前缀、Nacos dataId、延迟建连、滚动发布和 commons-pool2 依赖陷阱。
将 Nexus2 到 Nexus3 的迁移拆成可执行 Kubernetes Runbook,覆盖资源创建、Upgrade Wizard、H2 升级、Database Migrator、验证和 VIP 回滚。
以 JDK 25、Nacos 3.1.2 和标准数据访问为基线,梳理 Spring Boot 3.5.13 升级到 4.1 的依赖边界、实施顺序与验收清单。
单副本 GitLab 迁入 Kubernetes 后仍可能因节点、磁盘或配置失效而不可用。本文区分备份、热备、主备和完整 HA,并给出务实的恢复设计。
复盘一次 Spring Boot 3.1.7 到 3.5.13、Java 17 到 Java 25 的升级,定位 Spring Batch Job 重名、TaskExecutor 注入歧义与 MongoDB 4.2 健康检查不兼容。
解释 Kubernetes 看到的 Java 容器内存包含什么,逐步使用 ZGC、SoftMaxHeapSize、ZUncommitDelay 和 Native Memory Tracking 分析与优化 Spring Boot 服务。
从 Kubernetes、cgroup、JVM Heap 和 Native Memory 四层拆解 Spring Boot 内存,逐步调整 G1、堆上限、Metaspace、线程、消息预取、glibc arena、JProfiler 与探针。
复盘一次多服务 Pod 重启:从 Last State、Exit Code、Events 和 previous logs 排除节点故障,最终定位阻塞依赖、连接池等待与 liveness 放大效应。
记录 Nexus2 到 Nexus3 的完整迁移路径:官方升级向导、H2 版本升级、PostgreSQL 数据迁移、Kubernetes StatefulSet、旧路径兼容与 VIP 回滚。
从命名空间、PostgreSQL、Secret、PVC、StatefulSet、Service 和 Ingress 开始,逐步部署可持久化、可备份、可升级的 Nexus Repository 3。
一份可执行的 kubeadm 集群重建迁移手册,覆盖冻结基线、备份恢复、节点初始化、网络、数据、Nacos、业务验收、停止条件与回滚。
按 RPO、备份恢复、零副本预部署和逐层验收迁移常见数据服务,避免只复制 PVC、只启动空库或把三个副本调度到同一节点。
当请求报无可用实例、连接超时或 Redis 失败时,先区分 Service 网络、注册发现、配置和下游健康,避免在事故中扩大变更面。
面对 Connection refused、No route to host、超时和 Nacos 无可用实例,按 DNS、Service、Endpoint、Pod、CNI、kube-proxy 与防火墙逐层定位。
从版本兼容性、数据库 schema、配置备份和客户端盘点开始,逐节点升级 Kubernetes 中的三节点 Nacos,并验证注册、配置和回滚路径。
保留 Nacos 配置中心,逐步将 Feign、Gateway 和内部 HTTP 调用从注册中心实例发现迁移到 Kubernetes Service DNS,并设计灰度、验证与回滚。
记录如何盘点数百份 Nacos 配置,将 Kubernetes ClusterIP 安全迁移为 Service DNS,并区分 Redis、Kafka、外部依赖和已删除服务。
从数据库、Secret、Headless Service、普通 Service 和 StatefulSet 开始,逐步搭建带鉴权、反亲和、探针和完整验收的三节点 Nacos 集群。
解释 startup、readiness、liveness 探针及其时间计算,结合 Spring Boot 优雅停机、Deployment 策略、preStop 和 PDB 设计可验证的滚动发布。
从服务器清单开始,逐步划分入口、平台、业务、数据、监控、共享和预留节点池,并用标签、污点、容忍和亲和性落实调度策略。
在 kubeadm 集群上按顺序安装并验收 Calico、metrics-server、NFS 动态存储和 NGINX Ingress,每个组件都包含冒烟测试和故障判断。
从数据包实际流向出发,解释 Node IP、Pod IP、Service ClusterIP 和 DNS 的关系,并给出地址规划、冲突检查、迁移与验证方法。
从网络规划和 Rocky Linux 初始化开始,一步步创建 kubeadm 高可用集群,安装 kube-vip、Calico、指标、存储与 Ingress,并完成集群验收。
一套按实际执行顺序组织的 Kubernetes 教程,覆盖集群、网络、调度、滚动发布、Deployment 与 Nacos 基线、中间件、JVM 优化和故障复盘。