第一次接触 Kubernetes 时,对象名很多,但抓住三条主线会轻松很多:跑什么(Pod)、谁保证数量与健康(Workload)、怎么从集群外访问(Service)。
Pod:最小调度单元
- 一个 Pod 里可以有一个或多个容器,共享网络与存储卷(localhost 互通)。
- Pod 是可替换的:节点故障时会被调度到别处重建,不要假设「本地磁盘永久存在」。
Workload:谁负责副本与滚动
- Deployment:无状态应用最常见选择,管副本数、滚动升级与回滚。
- StatefulSet:有稳定网络标识与有序部署时再用(如部分有状态中间件)。
- DaemonSet:每节点一份(如日志、监控 agent)。
Service:稳定访问入口
- 为一组 Pod 提供稳定虚拟 IP / DNS(ClusterIP),或通过 Ingress 暴露 HTTP(S) 路由。
- Service 通过 label selector 绑定 Pod,Pod 变更时仍指向同一逻辑服务。
实操建议
- 先会用
kubectl describe/logs/events排障,再谈高级特性。 - 资源请求与限制(requests/limits)和探针(liveness/readiness)尽早配置,否则弹性与调度行为会很难预期。