Kubernetes 调度与部署策略

发表于
更新于
2 0.8~1.1 分钟 372

第四阶段:Kubernetes(容器编排)·调度与部署策略

调度机制

NodeSelector

简单节点选择,Pod 的 .spec.nodeSelector 匹配节点标签。

亲和性与反亲和性

  • 概念:用更复杂的表达式(In/NotIn/Exists)定义软/硬约束,如 Pod 间亲和(同一拓扑域)或反亲和(互斥)。
  • 实现:调度器在预选阶段根据节点标签及已有 Pod 拓扑信息过滤节点,在优选阶段打分。

污点与容忍

  • 概念:节点可标记污点(Key=Value:Effect),Effect 包括 NoSchedule(不调度)、PreferNoSchedule(尽量不调)、NoExecute(驱逐已有 Pod)。Pod 通过 tolerations 声明可容忍的污点。
  • 实现:调度器检查节点污点与 Pod 容忍度是否匹配;NoExecute 污点添加后,taint manager 会驱逐不匹配的 Pod。

部署策略

滚动更新

  • 概念:逐步用新版本 Pod 替换旧版本,保证服务不中断。
  • 实现:Deployment 控制器通过 maxSurge 和 maxUnavailable 参数控制更新速率,创建新 ReplicaSet 并调整副本比例。

回滚

Deployment 保留历史 ReplicaSet,回滚时选择目标版本 ReplicaSet 并反向调整副本数。

HPA(水平自动扩缩)

  • 概念:根据 CPU、内存或自定义指标动态调整 Deployment/ReplicaSet 副本数。
  • 实现:HPA 控制器定期(默认 15 秒)从 Metrics Server(或自定义 API)获取指标,计算所需副本数(公式:期望副本数 = 当前副本数 × (当前指标值/期望指标值)),并更新 scale 子资源。

0

推荐文章

Kubernetes 存储抽象
Kubernetes 配置与密文
Kubernetes 资源管理
上一篇 Docker 架构解析
下一篇 Kubernetes 安全基础