---
标题: Kubernetes 生产落地最佳实践
关键字:
- Kubernetes
- HPA
- Requests
- Limits
- 滚动升级
- 探针
- PDB
- QoS
描述: 面向生产环境的 Kubernetes 资源配置、弹性伸缩、升级发布与稳定性保障的关键实践与示例。
categories:
- 文章资讯
- 技术教程
---
概述
本文总结生产环境运行 Kubernetes 的关键落地点,包括资源配额、弹性伸缩、健康探针、滚动升级与中断预算,附带可直接应用的配置示例。
资源请求与限制(已验证)
requests表示调度与资源预留;limits表示硬上限。应满足requests ≤ limits。- QoS 类别:
Guaranteed:所有容器均设置且requests = limits。Burstable:设置了requests但不满足Guaranteed。BestEffort:未设置requests与limits。
健康探针与就绪
- 配置
livenessProbe与readinessProbe,确保故障自愈与流量只进入就绪副本。
readinessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe:
httpGet:
path: /livez
port: 8080
initialDelaySeconds: 15
periodSeconds: 20
弹性伸缩(HPA 示例)
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: myapp-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: myapp
minReplicas: 2
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 60
确保安装 Metrics Server 以提供资源度量。
发布与升级
- 使用滚动更新,观察副本就绪:
kubectl rollout status deployment/myapp
- 设置
maxUnavailable与maxSurge控制发布风险;必要时使用canary或blue/green。
中断预算与调度
- 配置
PodDisruptionBudget(PDB)保障最小可用副本数:
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: myapp-pdb
spec:
minAvailable: 2
selector:
matchLabels:
app: myapp
- 使用亲和/反亲和与拓扑约束实现跨节点高可用;关键工作负载可设置优先级与抢占策略。
监控与告警
- 采集应用与集群指标(Prometheus/Grafana),配置关键 SLO 告警(错误率、延迟、可用副本)。
- 捕获 OOMKill 与重启原因,调整资源曲线与 GC 策略。
注意事项
- 资源设置以真实负载为基线,避免过度保守导致资源浪费或过度激进引发稳定性问题。
- 变更采用分批与回滚策略,保留上一个稳定版本的镜像与配置。

发表评论 取消回复