1. 课程导入
在工业现场,数据不再只向中心云汇聚,越来越多的推理、采集、控制和告警需要在靠近设备的一侧完成。K3s 作为经过 CNCF 认证的轻量级 Kubernetes 发行版,把完整 Kubernetes API 能力压缩到几十兆二进制中,天然适合部署在工控机、边缘网关、ARM 盒子甚至 PLC 旁的算力节点上。本课程围绕“工业边缘集群”这一真实场景,带你从零搭建一套可运行、可观测、可运维的 K3s 集群,并把它接入到工业数据链路中。
一、学习目标:从会装到会管
完成本课程后,你应当能够独立完成以下任务:
- 在 x86 与 ARM 混合环境中规划并部署 K3s 单节点或多节点集群;
- 理解 K3s 与标准 Kubernetes 的差异,知道哪些组件被替换、哪些能力被保留;
- 使用 Helm、Manifest 和 K3s 内置的部署机制发布工业应用;
- 配置本地存储、HostPath、Local Path Provisioner,满足边缘数据持久化需求;
- 通过 Traefik、Service、Ingress 暴露边缘服务,并与上位系统对接;
- 使用 Prometheus、Grafana、Loki 等工具建立边缘可观测性;
- 掌握离线安装、镜像预置、证书轮换、备份恢复等现场运维技能;
- 能够排查节点 NotReady、Pod 频繁重启、存储挂载失败等典型故障。
这些目标对应一条清晰的技能成长路径:先能装起来,再能跑应用,然后能管住状态,最后能处理异常。课程中的每个实验都尽量贴近真实工业现场,而不是停留在“Hello World”。
二、核心价值:为什么工业边缘需要 K3s
工业边缘场景与数据中心有本质区别。数据中心追求弹性、规模和自动化,而工业边缘更关注确定性、低延迟和可维护性。K3s 的价值体现在三个层面:
第一,资源占用低。K3s 将 etcd 替换为 SQLite 或嵌入式 etcd,默认不启用云厂商插件,单节点内存占用可控制在 512MB 以内,适合在 2GB 内存的工控机上运行。对于只有 4GB 内存的边缘网关,这意味着可以留出更多资源给业务容器。
第二,部署与运维简单。K3s 以单个二进制文件交付,安装脚本一行命令即可完成。它内置了 containerd、Flannel、CoreDNS、Traefik、ServiceLB 等组件,减少了现场拼装组件的复杂度。对于没有专职 Kubernetes 运维人员的工厂,这一点至关重要。
第三,保留 Kubernetes 生态。K3s 通过 CNCF 一致性认证,标准 YAML、Helm Chart、Operator 基本可以直接使用。这意味着团队在边缘侧积累的技能可以平滑迁移到云端,反之亦然。
三、整体知识框架:五个层次
本课程的知识框架可以划分为五个层次,从下到上依次是:
| 层次 | 核心内容 | 关键产出 |
|---|---|---|
| 环境与规划 | 硬件选型、操作系统、网络拓扑、节点角色 | 集群规划表 |
| 集群部署 | 单节点、多节点、HA、离线安装、ARM 支持 | 可运行集群 |
| 应用发布 | Deployment、Helm、Ingress、配置管理 | 工业应用上线 |
| 存储与数据 | Local Path、HostPath、NFS、数据备份 | 持久化方案 |
| 运维与可观测 | 监控、日志、告警、升级、故障排查 | 运维手册 |
这五个层次不是孤立的。例如,存储方案会影响应用发布方式,网络拓扑会影响集群 HA 设计,可观测性又反过来指导故障排查。课程会按照“规划—部署—发布—存储—运维”的顺序推进,但每个阶段都会回扣工业现场约束。
四、实战路线图:从一台工控机到边缘集群
为了让学习路径更直观,下面用一张图展示本课程的实战路线。图中从现场设备与数据源出发,经过 K3s 集群核心,最终到达运维与业务闭环。
这张路线图对应课程的三段式推进:先理解现场设备与数据源,再构建 K3s 集群核心,最后形成运维与业务闭环。每一段都有对应的实验和检查点,确保你不是“看完就忘”,而是“做完就会”。
五、常见误区与学习建议
在开始之前,先澄清几个常见误区:
- 误区一:K3s 是“阉割版 Kubernetes”。K3s 通过了 CNCF 一致性认证,标准 API 和资源对象都可用。它只是替换了部分默认组件,并优化了资源占用。
- 误区二:边缘集群不需要高可用。工业现场停机成本高,关键节点仍需要多副本或快速恢复方案。是否 HA 取决于业务连续性要求,而不是“边缘”二字。
- 误区三:装完就万事大吉。边缘集群的挑战在运维:网络抖动、磁盘写满、证书过期、镜像拉取失败。课程会专门安排排障与复盘环节。
- 误区四:直接照搬云上 YAML。云上依赖的 StorageClass、LoadBalancer、云厂商 CSI 在边缘往往不可用,需要替换为 Local Path、HostPath 或 NFS。
学习建议:每学完一个模块,就在自己的工控机或虚拟机上复现一次。建议准备至少两台设备:一台作为 K3s Server,一台作为 Agent;如果只有一台,也可以用单节点模式完成大部分实验。遇到问题时,先看 kubectl get nodes、kubectl get pods -A、journalctl -u k3s 这三条命令的输出,再结合课程中的排障思路定位。
# 快速检查集群状态的三条命令
kubectl get nodes -o wide
kubectl get pods -A -o wide
sudo journalctl -u k3s -n 100 --no-pager
本课程的目标不是让你记住所有命令,而是建立一套“规划—部署—验证—运维—复盘”的工程方法。当你面对一台全新的边缘设备时,能够有条不紊地把它变成集群中的一个可靠节点,并让业务应用稳定运行,这才是课程的核心价值。