一、项目背景

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

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

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐