1. 为什么你需要 Rancher + K3S 这套组合拳?
如果你正在或者打算搞容器化,那你肯定绕不开 Kubernetes。这玩意儿现在火得不行,几乎成了云原生时代的“操作系统”。但说实话,K8S 的原生安装和运维,对很多团队来说,门槛不低。你得操心 etcd 集群、网络插件、存储、证书管理……一堆事情,没点经验真容易掉坑里。
我自己带团队这些年,从裸机到云上,部署过不下几十套 K8S 集群。早期我们也头铁,硬啃原生安装,结果光是版本升级就能折腾一整天,更别说管理多套不同环境(开发、测试、生产)的集群了,那简直是运维的噩梦。后来我们发现了 K3S 和 Rancher 这套黄金组合,一下子就把效率提上来了。
简单来说,K3S 是 Kubernetes 的一个“瘦身版”。它把一些生产环境中可能用不到的原生组件(比如旧的云供应商驱动、alpha 功能)给去掉了,默认用更轻量的 SQLite 代替了 etcd,整个二进制文件就几十兆。这意味着它启动飞快,对硬件资源(CPU、内存)的需求也大大降低。我试过在一台 1核1G 的虚拟机上就能跑起来一个单节点的 K3S 集群,用来做本地开发测试简直完美。
而 Rancher,你可以把它理解为一个 Kubernetes 集群的“总控台”或者“管理面板”。它自己也是一个运行在 K8S 上的应用。有了它,你就不需要再分别登录到每个集群去敲 kubectl 命令了。Rancher 提供了一个统一的 Web 界面,能同时管理成百上千个 K8S 集群,不管这些集群是跑在你自己机房,还是在阿里云、腾讯云、AWS 上,甚至是混合的。它把集群的创建、监控、日志、告警、用户权限、应用商店这些功能都打包好了,开箱即用。
所以,这套组合拳的核心价值就是:用 K3S 实现快速、低成本的集群部署,用 Rancher 实现集中、可视化的集群管理。特别适合那些资源有限(比如边缘计算、开发测试环境)、但又需要管理多套 K8S 集群的中小团队或企业。接下来,我就手把手带你从零开始,把这套系统搭起来。
2. 动手之前:环境与心态准备
在开始敲命令之前,有两件事比技术本身更重要:一是把环境理清楚,二是把心态摆端正。别小看准备工作,很多后续的坑其实都是前期没规划好埋下的。
2.1 硬件与网络规划
原始文章里提到了硬件配置,我这里结合实战经验再细化一下。对于 生产环境,高可用是必须的。这意味着你至少需要:
- 3台服务器作为 K3S Server 节点:这三台机器将组成 K3S 的控制平面(Control Plane),实现高可用。它们之间需要稳定的低延迟网络,因为要运行 etcd(如果你选择外部 etcd 或嵌入式高可用模式)来存储集群状态。配置建议至少 2核4GB,系统盘 50GB。如果预算允许,CPU 和内存再好点,集群操作会更流畅。
- N台服务器作为 K3S Agent 节点:这些是真正跑你业务容器的工作节点。配置完全取决于你的业务负载。跑几个 Web 服务,2核4GB 起步;跑数据库、AI 训练任务,那就得 16核64GB 甚至更高,配 SSD 硬盘。
- 1台独立的服务器安装 Rancher:强烈建议将 Rancher 管理平台安装在一个独立的 K3S 集群上,不要和你准备管理的业务集群混在一起。这叫“管理平面与数据平面分离”。好处是,即使你管理的业务集群全部挂了,你的 Rancher 控制台依然能访问,方便你排查问题。这台机器配置 2核4GB 也够了。
对于 开发测试或个人学习,一切从简。一台配置好点的电脑(16GB内存以上),用虚拟机软件(如 VirtualBox, VMware)开 3-4 台 Linux 虚拟机(每台 1-2核,2-4GB内存)就完全可以玩转这套体系。
网络是重中之重:
- 所有节点之间必须能互相通信,特别是 6443(Kubernetes API Server)、2379-2380(etcd)、8472(Flannel VXLAN 默认端口)这几个端口要开放。
- 提前规划好 IP 地址段。集群 Pod 的网络(CIDR)和服务(Service)的网络不要和你的物理机网络冲突。比如,你的服务器内网是
192.168.1.0/24,那 Pod 网段可以设为10.42.0.0/16,Service 网段设为10.43.0.0/16。 - 想好域名。Rancher 需要通过一个域名来访问,比如
rancher.mycompany.com。你需要提前将这个域名解析到安装 Rancher 的那台服务器的 IP 上。本地测试可以修改自己电脑的 hosts 文件。
2.2 软件与依赖安装
操作系统我习惯用 Ubuntu 22.04 LTS 或者 CentOS Stream 8/9,社区活跃,问题好查。以下命令以 Ubuntu 为例。
第一步,在所有节点上安装 Docker。虽然 K3S


2339

被折叠的 条评论
为什么被折叠?



