【技术底稿 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 集群主控节点部署,完整覆盖离线资源准备、分步安装、权限修复、集群验证、环境无侵入避坑全流程,落地步骤可直接复刻复用。

相关推荐
南宫乘风1 天前
我们用企微机器人 + Claude 搭了个内部 DevOps 助手,替代了 60% 的日常杂活
机器人·claude·devops
love530love1 天前
GPT + Codex CLI + CodexPro 三位一体:AI 编程协作工作流
人工智能·windows·gpt·chatgpt·devops·mcp
姚青&2 天前
持续交付与 DevOps 体系
运维·devops
爱好曙光2 天前
云原生混沌工程实战:基于Litmus的故障注入与弹性测试
云原生·kubernetes·devops·混沌工程·故障注入·litmus·弹性测试
运维大师2 天前
【云原生与DevOps】07-Istio服务网格落地:从试点到全量的踩坑记录
云原生·istio·devops
运维大师2 天前
【云原生与DevOps】08-多云容灾架构设计:跨Region自动切换实践
运维·云原生·devops
老马历写记3 天前
【无标题】
maven·devops
Starry-sky(jing)3 天前
Win11 装 ESP32 Arduino 库卡 3 小时?我把官方 3.3.10 全平台 522MB 搬到了蓝奏云,解压即用
运维·windows·esp32·arduino·离线安装
想你依然心痛4 天前
AtomCode 在 DevOps 场景中的实战:CI/CD 流水线脚本自动生成
运维·ci/cd·docker·devops·自动化部署·github actions
潘正翔5 天前
docker基础_镜像使用
linux·运维·服务器·docker·容器·centos·devops