首页主机资讯centos上k8s资源分配策略

centos上k8s资源分配策略

时间2025-11-14 09:18:04发布访客分类主机资讯浏览362
导读:CentOS 上 Kubernetes 资源分配策略 一 基础概念与 QoS 在 CentOS 节点上运行的 Kubernetes 通过为容器设置 requests(调度保障)与 limits(上限约束)来进行资源分配;requests...

CentOS 上 Kubernetes 资源分配策略

一 基础概念与 QoS

  • 在 CentOS 节点上运行的 Kubernetes 通过为容器设置 requests(调度保障)与 limits(上限约束)来进行资源分配;requests 用于调度器选择节点,limits 用于 kubelet/内核进行限流与回收。未设置 requests 的 Pod 可能被调度到资源紧张的节点,影响稳定性。
  • 基于 requests/limits 的组合,Pod 会形成 QoS 等级
    • Guaranteed(每个容器都设置了 requests==limits,且 requests 不为 0):驱逐优先级最低,适合关键有状态服务。
    • Burstable(部分容器设置了 requests 且 requests < limits):常规业务常用等级。
    • BestEffort(未设置 requests/limits):驱逐优先级最高,不建议生产使用。
  • 建议为所有生产容器显式配置 requests/limits,并按业务重要性选择 QoS。

二 命名空间与准入控制

  • 在多团队/多环境场景下,用 ResourceQuota 限制命名空间的总量,防止资源被单个团队占满:
    • 示例(限制 CPU/Memory 的 requests 与 limits 总量):
      • requests.cpu: 1
      • requests.memory: 1Gi
      • limits.cpu: 2
      • limits.memory: 2Gi
  • LimitRange 为“未显式设置”的容器提供默认值与取值范围,避免“漏配”:
    • 示例(容器默认与默认请求):
      • default: memory 512Mi, cpu 500m
      • defaultRequest: memory 256Mi, cpu 250m
  • 作用范围覆盖 Pod/Container,可按需扩展到 PersistentVolumeClaim 等。

三 工作负载扩缩容与调度优化

  • 弹性扩缩容:
    • HPA(Horizontal Pod Autoscaler):基于 CPU/内存或自定义指标 自动增减副本数。示例目标:平均 CPU 利用率 50%,副本数 1–10
    • VPA(Vertical Pod Autoscaler):基于历史使用自动调整 requests/limits,减少“过度配置/配置不足”。示例更新策略 Auto(需与副本数变更策略配合,避免冲突)。
  • 调度与拓扑:
    • 使用 nodeSelector / nodeAffinity / podAffinity / podAntiAffinity 控制 Pod 分布,提升高可用与资源局部性。
    • 使用 podTopologySpreadConstraints 将副本分散到不同节点/机架,降低单点故障风险。
    • 启用 CPU Manager(静态策略)拓扑感知调度,优化 NUMA 架构下的 CPU 绑定与性能隔离。
  • 特殊资源:
    • GPU:部署 NVIDIA Device Plugin 后,在 Pod 中以资源名 nvidia.com/gpu 请求,例如 1 块 GPU。

四 监控 告警与内核网络优化

  • 可观测性:部署 Prometheus + Grafana 采集节点/Pod 指标,配置 Alertmanager 告警;结合日志方案(如 ELK/Fluentd)定位资源瓶颈与异常。
  • 网络性能:选择高性能 CNI(如 Calico/Flannel),并根据环境设置合适 MTU(如 1450/1500)以避免分片与性能劣化。
  • 稳定性:为关键服务配置 Liveness/Readiness 探针,确保异常快速重启与流量摘除。

五 快速落地清单与示例

  • 建议的落地顺序:
    1. 明确 SLO,梳理应用 P50/P95/P99 资源画像;
    2. 为所有容器设置 requests/limits,优先保障关键服务的 Guaranteed
    3. 按命名空间实施 ResourceQuota/LimitRange
    4. 上线 HPA(CPU/内存或业务指标),必要时引入 VPA
    5. 配置 亲和/反亲和与拓扑分散,启用 CPU Manager
    6. 部署 Prometheus/Grafana/Alertmanager 与日志体系;
    7. 灰度与压测,持续校准 requests/limits 与 HPA 阈值。
  • 示例一(容器资源请求与限制):
    • 资源配置:requests cpu 250m / memory 64Mi;limits cpu 500m / memory 128Mi
  • 示例二(ResourceQuota):
    • 命名空间总量:requests.cpu 1、requests.memory 1Gi、limits.cpu 2、limits.memory 2Gi
  • 示例三(LimitRange 默认与默认请求):
    • default:cpu 500m / memory 512Mi;defaultRequest:cpu 250m / memory 256Mi
  • 示例四(HPA):
    • 指标:CPU 利用率;目标:50%;副本:1–10
  • 示例五(GPU):
    • 资源名:nvidia.com/gpu;数量:1

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: centos上k8s资源分配策略
本文地址: https://pptw.com/jishu/747719.html
CentOS JMeter版本选择与升级指南 centos hbase使用有哪些技巧

游客 回复需填写必要信息