应用工程师视角的 Kubernetes
定义
Kubernetes(K8s)是容器编排的行业标准:在集群中调度容器、维持声明的副本数、打通网络与服务发现、安全地滚动更新。对应用工程师来说,它就是中大型公司里 Docker 镜像最终部署的运行时。
为什么对 AI 求职重要
AI 公司的推理服务、RAG 后端和 GPU 训练任务都跑在 Kubernetes 上;“部署在 K8s”出现在大多数资深后端和平台岗 JD 里。面试通常不要求集群管理员水平——而是要求你能用 Docker 打包应用、写 manifest 或 Helm chart、理解资源配额与自动扩缩容、并能排查挂掉的 Pod。这个水平集中投入几周即可达到。
核心概念
- Pod、Deployment、ReplicaSet——声明式模型:描述期望状态,控制器负责收敛。
- Service 与 Ingress——稳定虚拟 IP、负载均衡、集群入口的 HTTP 路由。
- ConfigMap 与 Secret——通过环境变量或文件注入配置与凭证。
- 资源 requests/limits——CPU/内存调度、OOMKill,以及 AI 场景的 GPU 资源。
- 自动扩缩容——基于 CPU/自定义指标的 HPA;节点层面的 Cluster Autoscaler。
- Helm——模板化、可版本化的应用打包。
- 可观测与排障——
kubectl logs/describe/exec、存活/就绪探针、事件。
学习路径
- 本地起集群(kind 或 k3d),把自己的一个应用容器化并用原生 YAML 部署。
- 通过 Service + Ingress(带 TLS)暴露服务;练习滚动更新与回滚。
- 把 manifest 改写成 Helm chart,用 values 区分 dev/prod。
- 加上探针、资源限制和 HPA;故意搞坏应用,用 kubectl 排障。
- 把同一个 chart 部署到托管云集群(EKS/GKE/AKS),补上云厂商相关的部分。