跳到主要内容

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