本计划记录容器编排与 Kubernetes 的学习和实践。每篇文章围绕一个主题展开,结合原理、配置示例、常用命令与故障排查,帮助理解资源之间的协作关系。
初学时可以先完成工作负载与配置,再学习调度和资源管理;排查服务访问问题时,可以沿网络模块逐层检查;管理集群访问时,则从身份认证读到权限与准入控制。下面的目录按建议阅读顺序排列。
阅读目录
1. 工作负载、存储与应用配置
先理解 Pod 与控制器的职责,再根据应用的状态、运行方式和数据需求选择资源。
- Kubernetes 工作负载类型与控制器职责
- Pod:容器模型、生命周期与健康检查
- Deployment 与 ReplicaSet:副本管理与滚动更新
- Pod 存储管理
- ConfigMap、Secret 与应用配置管理
- StatefulSet:有状态应用管理
- DaemonSet:节点守护进程部署与更新
- Job:批处理任务、重试与清理
- CronJob:定时任务调度与执行策略
2. 调度、资源与自动扩缩容
从节点选择和资源声明出发,理解 Pod 的运行约束,再学习应用副本与节点容量如何联动调整。
- Pod 调度机制
- Taints 与 Tolerations:节点污点与容忍
- Pod 资源管理
- HPA:基于指标的 Pod 水平扩缩容
- VPA 与 Cluster Autoscaler:Pod 资源调整与节点扩缩容
3. 网络原理、服务发现与故障排查
沿着数据包的路径,从 Linux 网络基础走到 CNI、Service 和外部入口,再结合策略与抓包定位故障。
- Kubernetes 网络概览
- Linux 网络:命名空间、veth、网桥、ARP 与路由
- Netfilter、iptables、conntrack 与 NAT
- CNI 与跨节点网络:Flannel、Calico、Cilium
- Service 与 DNS 服务发现
- kube-proxy、iptables、IPVS 与 Service 数据面
- Ingress、Gateway API 与外部流量入口
- NetworkPolicy 网络策略
- eBPF 原理与 Cilium 网络数据面
- tcpdump、Wireshark 与 TCP 故障排查
- Kubernetes 请求链路与网络故障排查
4. 身份认证、权限与准入控制
按 API 请求的处理顺序,理解客户端身份、权限授权与准入策略,再落实凭据和证书的生命周期管理。
- Kubernetes 身份认证与 API 访问控制
- kubeconfig:集群连接、身份凭据与 Context 管理
- ServiceAccount:Pod 身份、Token 投射与轮换
- RBAC:角色、绑定、权限规则与授权排查
- CSR:证书申请、审批、签发与生命周期管理
- Admission Control:准入插件、PSA、Webhook 与 CEL 策略
学习时需要分清的边界
- Pod 是调度与生命周期单位,不能当作永久不变的服务器。
- Deployment 管理可替换的无状态副本;StatefulSet 提供稳定身份与存储关联,应用的数据复制和高可用仍需要自身机制或 Operator 配合。
- Service 提供稳定访问抽象,Ingress 与 Gateway API 处理外部入口路由,CNI 负责 Pod 网络配置。排障时应先确认故障发生在哪一层。
- 持久化不等于备份,Secret 也不等于自动加密;存储和敏感信息都需要相应的保护措施。
- HPA 调整副本数量,VPA 调整资源请求,Cluster Autoscaler 调整节点容量;扩容是否有效,还取决于调度约束和下游服务的承载能力。