【技术底稿 29】混合云 DevOps 架构升级:HP 服务器离线部署 K3s 集群主控节点(零侵入不影响现有业务)

一、项目背景

目前个人混合云硬件拓扑:

  1. 阿里云节点:承载公网流量入口、Nginx 反向代理、旧版生产服务;
  2. HP 本地服务器:核心算力节点,运行 Jenkins、MySQL 主库、Redis、商助慧平台(Docker Compose),FRP 打通阿里云内网隧道;
  3. 联想本地服务器:备用算力、MySQL 从库节点。

原有服务均基于 Docker Compose 单机部署,无容器编排、无集群调度能力。为实现混合云统一容器编排、服务弹性管理、后续跨节点扩容,决定引入轻量 K3s Kubernetes 发行版。

本次核心目标:在 HP 核心服务器离线安装 K3s Server 主控节点,全程零侵入、不改动现有 Docker、Jenkins、数据库、FRP 隧道等业务,仅新增集群底座。

二、环境前置说明

  • 操作系统:Ubuntu
  • 部署方式:离线 Airgap 安装(规避 GitHub 网络超时、SSL 连接重置问题)
  • 集群模式:单节点主控(control-plane+master)
  • 定制优化:默认关闭 Traefik、ServiceLB,避免占用 80/443 端口,不与现有 Nginx 冲突
  • 运行时:K3s 内置 containerd,与宿主机 Docker 完全隔离,互不干扰

三、离线资源准备

通过 Rancher 国内镜像站下载对应 amd64 版本的 3 个核心文件,下载地址:https://mirror.rancher.cn/k3s/

  1. k3s 二进制可执行文件
  2. k3s-airgap-images-amd64.tar.gz 离线镜像包
  3. k3s-install.sh 官方安装脚本

上传至服务器统一目录:/home/xyy/k3s-offline

四、分步离线安装实操

1. 赋予文件执行权限

bash

运行

复制代码
chmod +x k3s k3s-install.sh

2. 迁移二进制文件到系统全局路径

bash

运行

复制代码
sudo mv k3s /usr/local/bin/

3. 创建 K3s 离线镜像固定目录

bash

运行

复制代码
sudo mkdir -p /var/lib/rancher/k3s/agent/images/

4. 拷贝离线镜像包至指定目录

bash

运行

复制代码
sudo cp k3s-airgap-images-amd64.tar.gz /var/lib/rancher/k3s/agent/images/

5. 离线安装 K3s(跳过下载 + 禁用多余组件)

bash

运行

复制代码
sudo INSTALL_K3S_SKIP_DOWNLOAD=true ./k3s-install.sh \
server \
--disable traefik \
--disable servicelb

安装自动完成:创建 kubectl、crictl 软链接、生成 systemd 服务、设置开机自启。

6. 修复普通用户 kubectl 权限问题

默认 kubeconfig 文件仅 root 可读,普通用户执行会权限拒绝,执行以下命令修复:

bash

运行

复制代码
sudo chmod 644 /etc/rancher/k3s/k3s.yaml

五、集群可用性验证

执行节点查看命令:

bash

运行

复制代码
kubectl get nodes

执行过程与结果如下图所示:

plaintext

复制代码
NAME        STATUS   ROLES                  AGE   VERSION
hp-server   Ready    control-plane,master   76s   v1.26.9+k3s1
  • STATUS 为 Ready:集群主控节点正常就绪;
  • 后续 metrics 相关临时告警为组件初始化延迟,无需处理,自动消失;
  • 全程未中断、未影响服务器任何原有业务。

六、架构无侵入保障说明

  1. 网络端口:K3s 仅占用 6443 管理端口,不占用 80/443/3306/6379 等业务端口;
  2. 容器运行时:内置 containerd 与原生 Docker 两套环境隔离,互不抢占资源;
  3. 服务无改动:Jenkins、MySQL、Redis、Docker Compose 应用、FRP 隧道均保持原有运行状态;
  4. 可回滚性:内置一键卸载脚本,可随时还原环境,无残留配置。

七、后续规划路线

  1. 后续将阿里云服务器作为 Agent 节点接入 K3s,组建跨公私网混合云集群;
  2. 将商助慧平台从 Docker Compose 迁移为 K8s YAML 编排部署;
  3. 复用现有 MySQL、Redis 宿主机实例,通过 PV/PVC 做数据持久化;
  4. 改造 Jenkins 流水线,实现镜像构建→K3s 集群自动更新部署;
  5. 配置 Ingress 统一入口,由阿里云承接公网流量,内网转发至 HP 集群处理。

八、总结

本次成功在 HP 核心服务器离线部署 K3s 集群主控底座,解决国内网络 GitHub 下载失败问题,采用分步安装方式清晰掌握每一步原理与目录结构。

以零侵入方式完成容器编排架构升级,不影响现有生产与运维服务,为后续商助慧容器化迁移、混合云集群扩容、全自动 CI/CD 流水线搭建打下坚实基础。


本文是《技术底稿》系列第 29 篇,记录个人混合云 DevOps 架构升级实战,采用离线 Airgap 方式完成 HP 服务器 K3s 集群主控节点部署,完整覆盖离线资源准备、分步安装、权限修复、集群验证、环境无侵入避坑全流程,落地步骤可直接复刻复用。

相关推荐
lunzi_08263 天前
【开源治理】05-把流程翻译成门禁:开源治理嵌入 DevOps 流水线实战
供应链管理·devops·开源治理
程序员老赵3 天前
服务器没有桌面?Docker 跑个 Chrome,浏览器就能远程用
docker·容器·devops
宋均浩3 天前
# pytest 的 5 个 fixture 骚操作,我用了 3 年才学会
devops
睡不醒男孩0308233 天前
云原生运维实战:高并发架构下的云原生可观测性、韧性降级与自动化干预体系
数据库·kubernetes·高并发·prometheus·devops·sre·缓存调优
爱学习的程序媛3 天前
DevOps 深度解析:从文化理念到落地实践
运维·devops
至乐活着4 天前
Docker Compose多服务编排实战:从零搭建Node.js+MySQL+Redis全栈应用
docker·微服务·devops·容器编排·compose
热爱运维的小七4 天前
深度解析|应用性能 + RUM + 拨测:现代 IT 运维的可观测性“铁三角”
运维·it运维·devops·apm·rum·网站拨测
A.说学逗唱的Coke4 天前
【大模型专题】AIOps + Loop 工程:从智能告警到自愈闭环的实战指南
运维·人工智能·devops
平头老王4 天前
CI/CD流水线设计 — 第1章:常见误区
ci/cd·自动化·devops·持续部署·持续集成
wanghao6664555 天前
DevOps 从入门到实践:构建高效交付流水线
运维·devops