企业级多台服务器组装 K3s 高性能集群实战指南
本期敖行客研发实战日记依旧邀请小伙伴赛博缝合师带来实战干货适配中小型企业机房落地使用。赛博缝合师代码世界里的“重症监护室医生”。开发负责给系统注入灵魂负责用 Docker、Kubernetes 和各类配置脚本在服务器的荒原上缝合出一条稳固的生命线。白天隐匿在监控面板的绿光之中深夜则化身救火队长用最冷静的眼神盯着每一次版本发布死守着系统不崩溃的底线。在企业实际生产环境中由于网络安全策略限制服务器往往处于内网或无互联网连接的孤岛环境。本文将详细讲解如何通过离线模式将多台独立服务器组装成一个高效、稳定的 K3s 容器集群并采用 Docker 作为底层的容器运行时Container Runtime以兼顾生态兼容性与轻量化优势。要求先安装好Docker 与 Docker Compose1、 节点角色与网络规划建议挑选一台物理配置相对优越尤其是 CPU 与内存的服务器作为Master主节点节点其余服务器作为 Work工作节点节点。以下为本指南的环境示例主机名称k3s-master | 内网 IP172.31.0.2 | 集群角色Master (主节点) | 核心组件k3s server, Docker, kubectl主机名称k3s-worker01 | 内网 IP172.31.0.3 (示例) | 集群角色Work (工作节点) | 核心组件k3s agent, Docker2、 K3s Master (主节点) 部署2.1、离线安装包准备与权限配置提前下载好 K3s 的离线二进制文件 k3s 以及安装脚本 k3s-install.sh将它们上传到主节点服务器的 /usr/local/bin 目录下。执行以下命令赋予可执行权限cd /usr/local/binchmod x k3s-install.sh //赋予安装脚本可执行权限chmod x k3s //赋予二进制文件可执行权限2.2、离线安装环境变量配置指定 Docker 运行时在执行脚本前需要通过环境变量明确告知安装程序跳过在线下载并指定使用 Docker 作为容器运行时执行以下命令export INSTALL_K3S_SKIP_DOWNLOADtrue //设置跳过下载 K3s 二进制文件使用本地文件export INSTALL_K3S_BIN_DIR/usr/local/bin //设置 K3s 二进制及工具的安装目录export INSTALL_K3S_EXEC--docker --write-kubeconfig ~/.kube/config --write-kubeconfig-mode 666//指定docker运行时2.3、配置文件修改与环境变量固化安装完成后需要对集群的配置文件进行微调将默认的集群访问地址变更为本机的内网 IP 172.31.0.2vi /etc/rancher/k3s/k3s.yaml修改其中的 server: https://127.0.0.1:6443 为 server: https://172.31.0.2:6443。2.4、写入环境变量vi /etc/profile# 在文件末尾追加以下内容export KUBECONFIG/etc/rancher/k3s/k3s.yaml保存退出后使配置立即生效source /etc/profile2.5、验证节点状态使用以下命令动态观测主节点状态确保状态STATUS显示为 Readywatch kubectl get node -o wide3、K3s Work (工作节点) 部署与扩容工作节点专门用于承载业务容器。将其加入集群时需要依赖主节点生成的 Token 凭证以及通信地址。3.1、在主节点机器上运行以下命令获取一段高强度的集群验证令牌cat /var/lib/rancher/k3s/server/node-token3.2、工作节点离线文件准备与权限配置登录到所有的 Work 节点服务器上重复文件准备工作。将 k3s 和 k3s-install.sh 同样放置于 /usr/local/bin 目录下并赋予权限cd /usr/local/binchmod x k3s-install.shchmod x k3s声明离线安装与运行时变量export INSTALL_K3S_SKIP_DOWNLOADtrueexport INSTALL_K3S_BIN_DIR/usr/local/binexport INSTALL_K3S_EXEC--docker --write-kubeconfig ~/.kube/config --write-kubeconfig-mode 6663.3、执行节点加入集群离线安装命令利用上一步从主节点获取到的真实 Token 字符串以及主节点的内网或公网通信 IP外加前面声明的环境变量直接运行加入命令请将下方命令中加粗部分替换为真实的凭证和 IP K3S_TOKENK10e9fb4eafcbd2e847d9289e6a6bb3f5d43f5a0cc2afe07bdba9f33274f1fe2d44::server:ee248540ca55564b33fc9f75dc76331c K3S_URLhttps://172.31.0.2:6443 ./k3s-install.sh生产网络注意 K3S_URL 中的 IP 地址在完全内网环境中应填写主节点的内网 IP如 172.31.0.2若是跨地域、跨云厂商组网则需替换为真实的、控制平面端口6443已放通的公网 IP 地址。4、最终集群验证当所有 Work 节点执行完安装脚本后回到主节点服务器上通过 kubectl 工具查看整个集群架构kubectl get node -o wide此时您应该能看到控制台打印出多行记录包含了 Master 节点和刚刚成功添加的 Work 节点。所有节点状态均为 Ready至此多台服务器已成功组装、整合成了一套高可用、统一调度的高性能 K3s 容器集群。结语如果你在实操过程中碰到节点加入失败、镜像离线导入、运行时适配报错等问题或是有高可用集群改造、业务容器迁移的相关疑问欢迎在评论区留言交流探讨感兴趣可以持续关注一起打磨更贴合企业生产的落地架构方案。敖行客介绍敖行客Allthinker聚焦服务企业研发团队及开发者以搭载自研企业级智能体引擎的 AT Work-Agent 研发工作台为核心支撑打造 AI 原生一体化研发协同体系依托企业智能体重构研发协作范式致力于赋能各类研发团队轻量化完成智能化升级。AT Work介绍AT Work-Agent 研发工作台是国内首个分钟级部署、AI 原生全链路研发协同平台依托企业级智能体赋能研发全流程零门槛打造专属 AI 研发团队实现研发效率与数据安全的双重飞跃。官网www.allthinker.com邮箱allthinkerallthinker.com