文章背景图

Kubernetes 进阶学习路线:从会用 kubectl 到能维护生产集群

2026-07-25
3
-
- 分钟

学习 Kubernetes 最容易陷入两个误区:只背命令,或者一开始就堆很多生态工具。更有效的路线是先理解核心对象和请求链路,再通过真实应用、故障和运维任务逐层加深。下面给出一条从入门到生产运维的路线。

## 第一阶段:容器与 Linux 基础

先掌握镜像、容器、进程、网络命名空间、挂载和 cgroup。Linux 方面至少熟悉进程、端口、DNS、路由、文件权限、systemd 和日志。

目标不是成为内核专家,而是能回答:容器为何能隔离、资源为何受限、网络包从哪里走、应用为何启动失败。

建议实验:

- 构建一个最小 Web 镜像。

- 以非 root 用户运行。

- 挂载配置和数据目录。

- 设置 CPU/内存限制并观察行为。

- 排查端口、DNS 和文件权限问题。

## 第二阶段:核心对象与声明式管理

依次学习 Namespace、Pod、Label/Selector、Deployment、Service、ConfigMap、Secret、Job 和 DaemonSet。每个对象都要理解“期望状态—控制器—实际状态”的关系。

练习时优先保留 YAML 到版本库,而不是长期依赖命令式创建。学会使用:

```bash

kubectl get

kubectl describe

kubectl logs

kubectl explain

kubectl apply

kubectl diff

```

阶段目标:能把一个带配置、探针、资源限制和 Service 的应用稳定部署出来,并能更新和回滚。

## 第三阶段:把应用真正暴露出去

学习集群网络模型、CoreDNS、Service、EndpointSlice、Ingress、TLS 和 NetworkPolicy。

完整实验应包含:

1. 前端与后端两个 Deployment。

2. 集群内通过 Service 名称通信。

3. Ingress 按域名或路径暴露服务。

4. TLS 终止。

5. 默认拒绝网络策略,再精准放行应用与 DNS。

6. 故意改错 selector、端口和 DNS,按链路排查。

## 第四阶段:配置、存储与有状态应用

理解 ConfigMap/Secret 的更新方式、emptyDir、PV、PVC、StorageClass、StatefulSet 和备份恢复。

建议部署一个数据库实验环境,但不要把“数据库能启动”当作生产方案。继续验证:Pod 重建后数据是否保留、卷能否扩容、备份能否恢复、节点故障时如何迁移。

## 第五阶段:调度、可靠性与发布

学习 requests/limits、QoS、探针、优雅终止、滚动更新、HPA、PodDisruptionBudget、亲和性、污点与容忍度。

这一步要从“资源能运行”升级到“服务能持续运行”:

- 新版本没 Ready 时不能接收流量。

- 应用终止前完成连接排空。

- 节点维护时保留足够副本。

- 高峰期能扩容,低峰期不会浪费过多资源。

- 升级失败可以快速回滚。

## 第六阶段:集群安装与生命周期

使用 kubeadm 搭建自己的实验集群,理解 API Server、etcd、Scheduler、Controller Manager、kubelet、CRI、CNI 和 CSI。

至少实践:

- 初始化控制面和加入节点。

- 证书检查与续期。

- etcd 快照和恢复。

- 节点 drain、维护与重新加入。

- 小版本升级。

- 控制面或节点故障排查。

生产高可用还涉及负载均衡、多控制面、etcd 拓扑、备份和灾难恢复,应在掌握单控制面流程后继续扩展。

## 第七阶段:安全基线

把安全作为默认配置,而不是最后补丁:

- RBAC 最小权限和专用 ServiceAccount。

- Pod Security Admission。

- 非 root、禁止提权、只读根文件系统和 seccomp。

- NetworkPolicy。

- 镜像扫描、固定摘要和供应链治理。

- etcd 加密、审计日志和运行时检测。

通过 kube-bench 等工具发现问题,再结合实际部署方式人工判断。扫描通过不代表没有风险。

## 第八阶段:可观测性与故障处理

建立指标、日志、事件和链路追踪的基本体系。重点不是安装多少工具,而是能从告警定位到用户影响和根因。

建议维护一套故障实验库:

- CrashLoopBackOff、OOMKilled、探针失败。

- Service 无 Endpoints、DNS 失败、NetworkPolicy 阻断。

- PVC Pending、卷挂载错误。

- 节点 NotReady、磁盘压力、证书过期。

- API Server 或 etcd 配置错误。

每次练习记录现象、证据、根因、修复、验证和预防项。

## 第九阶段:交付与平台化

熟悉 Helm、Kustomize、CI/CD、GitOps 和策略治理。工具选择应服务于可重复、可审计和可回滚的交付目标。

团队规模扩大后,可以建设标准模板、命名空间基线、自动策略、成本视图和自助发布入口,但不要过早隐藏 Kubernetes 的基本行为,否则平台故障时很难排查。

## 一条可执行的 12 周计划

- 第 1~2 周:容器、Linux、Pod 与 kubectl。

- 第 3~4 周:Deployment、Service、配置和探针。

- 第 5 周:DNS、Ingress 与 NetworkPolicy。

- 第 6 周:PV/PVC、StatefulSet 与备份。

- 第 7 周:调度、资源、发布与高可用。

- 第 8~9 周:kubeadm、升级、证书和 etcd。

- 第 10 周:RBAC、Pod Security 和容器加固。

- 第 11 周:监控、日志和故障注入。

- 第 12 周:完成一个端到端项目并写复盘。

## 最终项目建议

部署一个包含前端、API、数据库和定时任务的小系统,要求具备:私有镜像、配置与 Secret、Ingress TLS、NetworkPolicy、持久卷、资源限制、探针、滚动发布、备份、监控、审计与恢复文档。

当你能够在不看教程的情况下部署、升级、制造故障、定位并恢复这个项目,才真正从“会用 Kubernetes”进入“能维护 Kubernetes”。

## 参考资料

- https://kubernetes.io/docs/home/

- https://kubernetes.io/docs/concepts/

- https://kubernetes.io/docs/tasks/

原创

Kubernetes 进阶学习路线:从会用 kubectl 到能维护生产集群

本文链接: Kubernetes 进阶学习路线:从会用 kubectl 到能维护生产集群

本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

评论交流

文章目录