Skip to content

Kubernetes 知识体系 ​

本知识库面向需要开发、发布和运维 Kubernetes 工作负载的工程师。内容以原生 Kubernetes 为主,命令示例默认使用 Bash、kubectl 和命名空间 demo。

版本基线

截至 2026-08-12,Kubernetes 最新稳定版是 v1.36.3,上游维护的三个次要版本分支是 1.36、1.35、1.34。版本信息以 stable.txt、GitHub v1.36.3 Release 和版本偏差策略为依据。预发布的 v1.37.0-rc.0 不是生产稳定版。详见版本与环境。

阅读地图 ​

阶段章节目标
入门版本与环境选版本、安装客户端、安全连接集群
原理架构与 API理解控制面、节点、声明式控制循环
原理对象与清单正确编写 YAML、标签、选择器和所有权关系
操作kubectl 基础查询、创建、更新、删除和查看日志
操作kubectl 进阶JSONPath、调试、代理、补丁和服务端应用
应用工作负载选择 Pod、Deployment、StatefulSet、DaemonSet、Job
应用配置管理管理 ConfigMap、Secret、ServiceAccount 和环境变量
基础设施存储理解 Volume、PV、PVC、StorageClass 和快照
基础设施网络理解 Pod 网络、Service、DNS、Ingress、Gateway 和策略
基础设施调度控制节点选择、亲和性、污点、拓扑分布和优先级
可靠性资源与健康检查配置 requests/limits、QoS、探针和生命周期
可靠性扩缩容使用 HPA、VPA、节点扩容并避免控制器冲突
安全RBAC 与安全最小权限、Pod Security、Secret 与供应链防护
运维可观测性统一指标、日志、事件、审计和告警
运维排障手册从症状沿 Pod、网络、存储、节点逐层定位
运维升级与维护规划版本、备份、滚动升级、节点维护与回退
生产生产实践落地高可用、变更治理、容量、安全和灾备基线
速查命令速查按场景快速找到常用与高风险命令

核心心智模型 ​

Kubernetes 不是“运行容器的命令行工具”,而是一个持续协调期望状态与实际状态的分布式控制系统:

  1. 用户向 API Server 提交对象的期望状态。
  2. API Server 完成认证、鉴权、准入和持久化。
  3. 控制器观察对象并创建或更新下游对象。
  4. Scheduler 为未绑定的 Pod 选择节点。
  5. 节点上的 kubelet 通过容器运行时、网络和存储插件实现 Pod。
  6. 状态变化重新写回 API,控制循环持续收敛。

因此,生产操作应优先修改声明式配置并交给控制器收敛;直接改某个 Pod 通常只会得到暂时效果。

示例约定 ​

bash
# 明确当前上下文和命名空间,避免误操作
kubectl config current-context
kubectl config set-context --current --namespace=demo

# 只读命令可以先执行;写操作先做服务端 dry-run
kubectl apply --server-side --dry-run=server -f app.yaml
kubectl diff -f app.yaml
kubectl apply -f app.yaml
  • <pod>、<node>、<namespace> 是占位符,执行前必须替换。
  • 命令未写 -n 时,使用当前上下文的默认命名空间。
  • YAML 中镜像均固定版本;生产环境建议进一步固定镜像 digest。
  • kubectl run、kubectl create 适合调试或生成草稿,长期配置应进入 Git。
  • 文档中的云负载均衡器、CSI、CNI、Gateway API 等能力取决于集群发行版和已安装插件。

操作安全等级 ​

等级典型操作要求
只读get、describe、logs、top、auth can-i核对上下文和命名空间
可回滚写入apply、scale、rollout restart先 diff/dry-run,观察 rollout
高风险delete、drain、cordon、强制替换明确对象、影响窗口和恢复步骤
灾难级删除命名空间/PV、--force --grace-period=0、etcd 恢复变更审批、备份、双人复核、演练

不要复制即执行

执行任何写命令前,至少运行 kubectl config current-context、kubectl cluster-info 和目标对象的只读查询。生产集群不要依赖 shell 历史中的默认命名空间。

官方资料 ​