一份贴合上班族节奏的 K8s + Helm 学习计划。
总周期约 6-8 周,每天投入 1-2h,碎片时间利用到位即可。

一、你的时间拼图

时段 非加班日 (周三/周五) 加班日 (周一/二/四) 周末
🚇 通勤早 (8:00-9:00) 听播客/看文档 同上
💼 工作 (9:00-18:00) 上班 上班
🚇 通勤晚 (18:00-19:00) 回顾/默写概念
🌙 晚间自由 19:00-21:30 黄金 2.5h 21:00-22:30 仅 1.5h 全天可安排 3-4h
😴 睡觉 23:00 前 23:00 前 自由

策略总结:

  • 🚇 通勤 → 理论输入(听、看、记)
  • 🌙 晚间 → 动手实践(敲命令、写 YAML、搭集群)
  • 🎯 加班日只做”最小动作”(复习 + 1 个知识点)
  • 📅 周末集中攻坚(打通周中没消化的硬骨头)

二、学习路线总览(6-8 周)

阶段 内容 周期
第 1 周 K8s 核心概念 + 环境搭建 7 天
第 2 周 Pod、Workload 资源 7 天
第 3 周 网络、Service、Ingress 7 天
第 4 周 存储、ConfigMap、Secret 7 天
第 5 周 Helm 基础(Chart、模板、 values) 7 天
第 6 周 Helm 进阶(依赖、Hook、测试) 7 天
第 7 周 综合项目:用 Helm 部署一套微服务 7 天
第 8 周 复习 + 面试/认证备考 7 天

三、通勤时间利用指南(每日必做)

🚇 早通勤(1h)— 新知识输入

推荐资源(提前下载离线):

播客/音频:
- "Kubernetes Podcast from Google" 每周一集,了解业界动态
- "The Podlets Podcast" 深入 K8s 原理

视频(提前缓存):
- B站:CloudNative 实战系列
- YouTube: "Kubernetes in 1 Hour" 等速通视频

文档:
- 官方文档第一遍过概念:kubernetes.io/docs/concepts/
- 使用 k8s cheat sheet PDF 作为随身参考

每日任务清单:

早通勤任务
周一 听 1 集 K8s 播客 + 记 3 个关键词
周二 看 1 段 K8s 视频(15-20min)
周三 读官方文档一节 + 画思维导图(手机备忘录)
周四 复习这周前三天学过的概念
周五 整理本周知识点到笔记 App

🚇 晚通勤(1h)— 回顾与巩固

不加班 → 回顾当天所学,用手机写总结笔记。
加班 → 闭眼休息或听轻音乐,不硬学。


四、晚间学习计划

非加班日晚间(19:00-21:30)— 黄金 2.5h

19:00-19:30  晚饭 + 放松
19:30-19:45 回顾通勤笔记(激活记忆)
19:45-21:00 动手实践(核心时间段)
21:00-21:15 写学习日志 / 记 bug 和心得
21:15-21:30 放松、准备睡觉

加班日晚间(21:00-22:30)— 轻量 1h

21:00-21:30  到家 + 快速收拾
21:30-22:00 只做 1"最小动作"(看 1 个命令效果/改 1 个 YAML)
22:00-22:15 记录当天学到的 1 个知识点
22:15-22:30 准备睡觉

⚠️ 加班日不要贪多,保持连续性的 1h 比硬撑 3h 效果好。


五、每日学习内容(按周展开)

第 1 周:K8s 基础 + 环境

晚间动手内容 时间预算
周五(今晚) 安装 minikube / kind / Docker Desktop(带 K8s)✅ 1h
周六 跑通 kubectl get nodes,熟悉命令行;了解 Pod 概念 2h
周日 跑第一个 Nginx Pod:kubectl run nginx --image=nginx + expose 2h
周一 🕐 看 kubectl 常用命令:get/describe/logs/exec/delete 1h
周二 🕐 了解 namespace 概念,创建/切换 namespace 1h
周三 理解 YAML 格式,手写第一个 pod.yaml 2h
周四 🕐 kubectl apply -f 部署并对比 run 的区别 1h

第 2 周:Pod 与 Workload

内容
周五 ReplicaSet + Deployment:滚动更新、回滚
周六 StatefulSet:有状态应用部署
周日 DaemonSet + Job/CronJob:守护进程与批处理
周一 🕐 复习:三种 Workload 的适用场景对比
周二 🕐 实战:用 Deployment 部署一个 Web 应用
周三 Pod 生命周期:InitContainer、探针(liveness/readiness/startup)
周四 🕐 手写一个带健康检查的 Deployment

第 3 周:网络

内容
周五 Service 类型:ClusterIP / NodePort / LoadBalancer
周六 Ingress + Ingress Controller
周日 网络策略 NetworkPolicy
周一 🕐 复习 Service 和 Ingress 区别
周二 🕐 实战:用 Service + Ingress 暴露应用
周三 DNS 与服务发现(CoreDNS 原理)
周四 🕐 画一个完整的 K8s 网络流转图

第 4 周:存储与配置

内容
周五 ConfigMap + Secret:配置与敏感信息管理
周六 Volume:emptyDir、hostPath、PVC/PV
周日 StorageClass + 动态供给
周一 🕐 复习 ConfigMap/Secret 注入方式
周二 🕐 实战:用 ConfigMap 配置 Nginx
周三 手写一个有状态应用(MySQL + PV)
周四 🕐 对比 static PV 和 dynamic PV 的差异

第 5 周:Helm 基础

内容
周五 Helm 安装 + 核心概念(Chart / Release / Repository)
周六 helm search / install / upgrade / rollback 基本操作
周日 Chart 目录结构解析:Chart.yaml / values.yaml / templates/
周一 🕐 用 Helm 部署一个应用(如 nginx ingress)
周二 🕐 values.yaml 覆盖:--set / -f
周三 模板语法(一):内置对象、Values、模板函数
周四 🕐 读一个开源 Chart(如 bitnami/nginx)的 templates 目录

第 6 周:Helm 进阶

内容
周五 模板语法(二):条件判断 if/else、循环 range
周六 命名模板(define/template)与 include
周日 Chart 依赖管理(dependencies / subcharts)
周一 🕐 复习 Helm 模板语法要点
周二 🕐 写一个自定义 Chart(简单 Web 应用)
周三 Helm Hook:预/后置任务(migration、验证)
周四 🕐 写一个有 Hook 的 Chart(数据库 Migrate 场景)

第 7 周:综合项目

这一周动手搭建一个完整的微服务应用,并用 Helm 管理全部组件。

项目: 博客系统微服务化
架构:
- Frontend: Nginx + React (Deployment + Service + Ingress)
- Backend: Spring Boot / Go (Deployment + ConfigMap)
- Database: MySQL (StatefulSet + PVC)
- Cache: Redis (Deployment + Service)
- 日志: EFK / LPL (可选)
管理方式: 一个 umbrella Chart 包含以上所有子 Chart
内容
周五 设计架构 + 搭建基础 Chart 骨架
周六 实现前端服务 Chart
周日 实现后端服务 Chart(带 ConfigMap)
周一 🕐 配置 Service 和 Ingress 暴露
周二 🕐 加上 MySQL 和 Redis 子 Chart
周三 联调测试:helm install 一键部署
周四 🕐 优化:制作覆盖 values、增加健康检查

第 8 周:复习 + 备考

内容
周五 整理所有学习笔记,形成自己的知识图谱
周六 刷题:K8s 面试题 / CKAD 模拟题
周日 模拟面试:用自己的话讲一遍核心概念
周一 🕐 查漏补缺:翻看还没掌握的点
周二 🕐 总结学习心得,写一篇博客输出
周三 整理自己的 Helm Chart 到 GitHub
周四 🕐 写学习复盘,规划下一步方向

六、环境搭建

本地环境要求

工具 最低版本 说明
Docker Desktop 20.10+ 自带 K8s 集群(macOS/Windows)
minikube v1.30+ 轻量本地集群
kubectl v1.28+ K8s 命令行工具
Helm v3.12+ K8s 包管理器

推荐一键安装

# Windows (choco)
choco install kubernetes-cli helm minikube

# macOS (brew)
brew install kubectl helm minikube

# Linux
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

快速启动集群

# minikube
minikube start --cpus=4 --memory=8g
kubectl get nodes

# Helm 初始化(v3 不需要 tiller)
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
helm search repo bitnami/nginx

七、学习工具推荐

用途 工具
笔记 Obsidian / Notion / 飞书文档
思维导图 XMind / 飞书思维导图
命令行录屏 asciinema(记录实操回放)
K8s 可视化 k9s(终端 UI) / Lens(桌面端)
YAML 校验 kubectl explain / helm lint
在线实验 Play with Kubernetes (killer.sh)
刷题 CKAD 模拟题 / killer.sh

八、小技巧

  1. 学一个做一个:看完一个概念,立刻 kubectl 敲一遍,不要光看不练
  2. 用别名省时间alias k=kubectlalias kgp='kubectl get pods'
  3. 日报驱动学习:每周写一篇 K8s 学习笔记发博客,输出倒逼输入
  4. 加班日稳住节奏:哪怕只看 10 分钟文档也要保持每日连续性
  5. 善用 kubectl explain:比查文档快,随时随地查资源字段
# 必设别名
alias k='kubectl'
alias kgp='k get pods'
alias kgs='k get svc'
alias kgd='k get deployment'
alias kaf='k apply -f'
alias kdf='k delete -f'

九、学习计划时间表(日历视图)

每周重复节奏

周一 🕐 加班日 → 最小动作(复习 + 1 知识点)
周二 🕐 加班日 → 最小动作
周三 🌟 自由日 → 动手实践(2h
周四 🕐 加班日 → 最小动作
周五 🌟 自由日 → 动手实践(2h
周六 🎯 → 集中攻坚(3-4h
周日 🎯 → 集中攻坚(3-4h

每周保底投入: 4 天×1h(加班日) + 2 天×2h(自由日晚) + 2 天×3h(周末) ≈ 14h/周

坚持这个节奏,6 周就能从零到上手干活 💪