Kubernetes生产实践
K8s 是容器编排的事实标准。前端工程师不需要会运维集群,但必须能:
- 看懂团队 yaml 配置
- 自己写 Deployment / Service / Ingress 部署前端项目
- kubectl 排查 Pod 起不来、500 错、内存涨
- 配 HPA 自动扩缩容
- 知道服务挂时怎么 rollback、看日志
这一章覆盖什么
- K8s 架构(master/worker、控制循环)
- Pod 生命周期、调度、亲和
- Service / Ingress / NetworkPolicy 流量管理
- ConfigMap / Secret 配置和密钥
- PV / PVC 存储
- HPA / VPA 自动扩缩容
- Helm 包管理
- RBAC 权限
- 日志监控集成
- 前端应用完整部署流程
文档清单
| 文档 | 解决的问题 |
|---|---|
| K8s 架构与核心概念 | etcd、apiserver、scheduler、kubelet、控制器模式 |
| Pod 生命周期与调度策略 | 状态、init container、探针、亲和性 |
| Service / Ingress 与流量管理 | ClusterIP/NodePort/LoadBalancer、Ingress 控制器 |
| ConfigMap / Secret 与配置管理 | 环境变量、文件挂载、热更新、密钥加密 |
| 存储体系 | 静态/动态供应、访问模式、回收策略 |
| HPA 与资源弹性伸缩 | metrics-server、自定义指标、KEDA |
| Helm 与应用包管理 | Chart 结构、values、模板、release 管理 |
| RBAC 与安全策略 | Role/RoleBinding、ServiceAccount、PSA |
| 日志-监控-告警集成 | EFK、Prometheus stack、Alertmanager |
| 前端应用 K8s 部署全流程 | 从 Dockerfile 到上线的完整实战 |
入门速查
# 集群信息
kubectl cluster-info
kubectl get nodes
# Pod 操作
kubectl get pods -n myapp
kubectl describe pod <pod> -n myapp
kubectl logs <pod> -n myapp -f
kubectl exec -it <pod> -n myapp -- sh
# Deployment
kubectl apply -f deployment.yaml
kubectl get deploy -n myapp
kubectl rollout restart deployment/myapp -n myapp
kubectl rollout undo deployment/myapp -n myapp
# 缩放
kubectl scale deployment/myapp --replicas=5
# 端口转发本地调试
kubectl port-forward svc/myapp 8080:80 -n myapp