K8s 实战学习实验室

从零搭建生产级 Kubernetes 集群,覆盖面试高频考点 + 生产实战技能。

目标

不是"会敲命令",而是:

  • 理解每个组件的设计动机和底层原理
  • 能独立架构一个公司的 K8s 平台
  • 能快速排障生产环境问题
  • 面试时能讲清楚为什么,而不只是"我用过"

实验环境

5 台跨地域服务器(3 台洛杉矶 + 2 台香港),模拟真实的多区域部署:

角色IP位置配置备注
Master107.148.176.193LA16C/16G/50G有 VPN 服务运行
Worker-1107.148.164.118LA16C/16G/50G有 VPN 服务运行
Worker-2154.9.27.60LA16C/16G/50G干净节点
Worker-338.76.221.17HK4C/8G/80G异构资源/边缘节点
Worker-4154.219.104.66HK16C/16G/150G存储节点

学习路线

阶段天数内容
Phase 0Day 1-2集群搭建 — 理解 K8s 架构和每个前置条件的原理
Phase 1Day 3-10核心基础 — 工作负载、服务发现、配置管理、权限控制
Phase 2Day 11-22中级技能 — 调度、存储、网络策略、监控可观测
Phase 3Day 23-35高级生产 — Helm、GitOps、安全、自动伸缩、Operator
Phase 4Day 36+毕业项目 — 生产模拟、混沌工程、面试准备

目录结构

k8s-lab/
├── README.md
├── phase-0/                          # 集群搭建
│   ├── 01-k8s-architecture.md        # K8s 架构全景(控制面/数据面/Reconciliation Loop)
│   ├── 02-os-preparation.md          # 系统准备(swap/cgroup/内核模块/containerd 原理)
│   ├── 03-wireguard-network.md       # WireGuard 虚拟内网(跨机房组网方案)
│   ├── 04-cluster-init.md            # 集群初始化(kubeadm/Calico/排障实录)
│   └── 05-node-labels-kubeconfig.md  # 节点标签/Taint/本机 kubectl 配置
├── phase-1/                          # 核心基础
│   ├── 01-workloads-and-services.md  # Deployment/滚动更新/回滚/Service/NodePort
│   ├── 02-configmap-secret.md        # 配置管理(env vs volume/base64/加密)
│   ├── 03-statefulset-daemonset-job.md # 有状态/DaemonSet/Job/CronJob
│   └── 04-rbac.md                    # 权限控制(Role/SA/最小权限设计)
├── phase-2/                          # 中级技能
│   ├── 01-scheduling-advanced.md     # 高级调度(Affinity/Taint/TopologySpread/GPU 模拟)
│   ├── 02-storage-nfs.md             # 存储(PV/PVC/NFS 动态 Provisioning)
│   ├── 03-ingress-networkpolicy.md   # Ingress 路由 + NetworkPolicy 零信任
│   └── 04-monitoring-observability.md # Prometheus/Grafana/Loki/HPA/etcd 备份
├── phase-3/                          # 高级生产
│   ├── 01-helm-harbor.md             # Helm 包管理 + Harbor 镜像仓库
│   ├── 02-argocd-gitops.md           # ArgoCD + Gitea GitOps CI/CD
│   └── 03-security-crd-advanced.md    # PSS 安全/CRD/Operator/etcd 备份恢复
├── phase-4/                          # 毕业项目
│   ├── 01-troubleshooting-lab.md     # 8 种故障场景排查实录
│   └── 02-interview-guide.md         # Top 20 面试题 + 技术栈全景
├── manifests/                        # 所有 YAML 配置文件
└── scripts/                          # 自动化脚本