一个应用在自己电脑上跑通以后,后面还有不少事:换台机器为什么失败,实例退出后谁来补,升级时怎样少影响用户,数据放在哪里,慢请求又该从哪查。

这个合集就沿着这些问题往下走。我们用一个读书笔记服务做例子,先看进程和容器,再加入多副本、数据库、图片存储及异步任务。每增加一个组件,都说清它解决什么问题、通过什么机制工作,以及哪些事情仍然要由应用自己处理。

适合已经写过简单HTTP服务、接触过Linux命令,但还没有把云原生知识连起来的读者。刚开始不用准备生产集群,第1篇会介绍可重建的实验环境。看不懂某段配置时,先跟着请求和状态变化走,字段名称可以回头再查。

先看应用怎样运行

  1. 从一次上线事故理解云原生 从环境差异和进程故障出发,分清容器、平台与应用的责任,并准备安全的实验环境
  2. 容器如何隔离进程 看Namespace、cgroup与文件系统怎样配合,解释localhost、挂载和重启时的变化
  3. 从代码到可重复镜像 把Go应用的构建与运行拆开,理解镜像层、缓存、digest与构建凭据

再把多个实例组织起来

  1. Kubernetes 如何让应用持续运行 沿着一次提交看控制器、调度器和kubelet,理解Pod替换与工作负载选择
  2. 从域名到 Pod 的一次请求 串起DNS、Service、EndpointSlice与入口,逐跳判断流量为什么没有到达应用
  3. 配置与数据为什么需要独立生命周期 区分配置传播、程序重载、持久化和备份,理解PVC与StatefulSet的边界

让变化能够安全发生

  1. 多套环境怎样共用一份配置 用Helm与Kustomize管理共性和差异,审查真正要提交的资源,而不只看模板
  2. 健康检查与弹性为什么会适得其反 通过慢启动和下游过载理解探针、requests、limits、HPA及容量约束
  3. 一次发布怎样才算完成 从制品身份走到滚动更新、退出、业务验证与数据库兼容,设计可执行的回退路径

最后回到真实问题

  1. 用证据排查一次慢请求 结合指标、日志与追踪缩小假设,读懂分位数、采样和SLO
  2. 从最小权限建立安全边界 沿镜像、进程、身份、网络和凭据逐层判断一次失守会影响什么
  3. 微服务 网格与Serverless该在什么时候出现 从异步摘要任务看服务拆分、重试与幂等,再评估新平台是否值得
  4. 把一条故障链查到底 用四个教学现场,把前面的机制连成症状、假设、证据和验证的完整过程

怎么读更有效

第一次可以顺序读,每章末尾先看题目,卡住再看提示,最后对照答案。题目的重点是解释原因,不是背命令参数。

如果正在排查问题,可以按入口跳读:请求到不了应用看第5篇;配置明明改了却没生效看第6篇;扩容后仍然慢看第8和第10篇;回滚失败看第9篇。返回前面的机制,再看第13篇的完整推理,会比反复重启更有收获。

命令与配置用于解释机制,实际操作前要核对所用版本、运行环境和资源范围。实验只放测试数据,不把工作集群当练习场。正文中的故障例子是教学推演,不代表用户网站的真实架构或事故。