作者信息:https://home.cnblogs.com/u/huangjiabobk

在K8S中,Kubernets资源限制是如何配置的,是否根据Qos?

在 Kubernetes 中,资源限制(Resource Limits)和请求(Resource Requests)是通过 Pod 的 spec.containers[].resources 字段进行配置的,这些配置不仅用于资源管理,还会影响 Pod 的服务质量(QoS)等级。以下是详细的配置方法和 QoS 的关系:

1. 资源限制和请求的配置

每个容器都可以指定以下资源限制和请求:

  • requests.cpurequests.memory:容器请求的最小 CPU 和内存资源。
  • limits.cpulimits.memory:容器可以使用的最大 CPU 和内存资源。

示例配置

以下是一个 Pod 的 YAML 配置示例,展示了如何为容器设置资源限制和请求:

yaml复制

apiVersion: v1
kind: Pod
metadata:
name: example-pod
spec:
containers:
- name: example-container
image: nginx
resources:
requests:
cpu: "500m" # 请求 500 毫核 CPU
memory: "128Mi" # 请求 128 MiB 内存
limits:
cpu: "1" # 最大使用 1 个 CPU
memory: "256Mi" # 最大使用 256 MiB 内存
2. 资源限制与 QoS 的关系

Kubernetes 根据 Pod 的资源请求和限制将 Pod 分为三种 QoS 等级:

  1. Guaranteed

    • 所有容器的 requestslimits 配置相等。

    • 这种 Pod 的资源使用有严格保证,不会被其他 Pod 或系统资源竞争所影响。

    • 示例:

      yaml复制

      resources:
      requests:
      cpu: "500m"
      memory: "500Mi"
      limits:
      cpu: "500m"
      memory: "500Mi"
  2. Burstable

    • 容器的 limits 配置大于 requests

    • 这种 Pod 在资源充足时可以使用超过请求的资源,但在资源紧张时可能会被限制。

    • 示例:

      yaml复制

      resources:
      requests:
      cpu: "100m"
      memory: "100Mi"
      limits:
      cpu: "500m"
      memory: "200Mi"
  3. BestEffort

    • 容器没有设置 requestslimits
    • 这种 Pod 的资源使用完全依赖于系统可用资源,优先级最低。
3. QoS 的调度和驱逐策略
  • 调度优先级:Guaranteed > Burstable > BestEffort。
  • 驱逐优先级:在资源不足时,BestEffort Pod 会被优先驱逐,其次是 Burstable Pod,最后是 Guaranteed Pod。
4. 资源限制的默认值和范围
  • 默认值:如果未设置 requestslimits,Kubernetes 会根据命名空间中的 LimitRange 自动注入默认值。
  • 范围限制LimitRange 可以设置命名空间内 Pod 和容器的资源限制范围,包括最小值、最大值和默认值。
5. 资源限制的动态调整
  • 自动调整:Kubernetes 支持根据实际负载动态调整资源限制,但需要结合 Horizontal Pod Autoscaler(HPA)等工具。
  • 手动调整:可以通过修改 Pod 的 YAML 文件并重新部署来调整资源限制。

综上所述,通过合理配置资源限制和请求,不仅可以优化 Pod 的性能和资源利用率,还能通过 QoS 机制确保关键应用在资源紧张时的稳定性。

posted @   黄嘉波  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
历史上的今天:
2024-02-13 在k8S中,PodSecurityPolicy 机制能实现哪些安全策略?
2024-02-13 在k8S中, PodSecurityPolicy机制是什么?
2024-02-13 在k8S中,Secret 有哪些使用方式?
2024-02-13 在k8S中,Kubernetes Secret 作用是什么?
2024-02-13 在k8S中,Kubernetes RBAC及其特点(优势)是什么?
版权声明:原创作品,谢绝转载!否则将追究法律责任。--作者 黄嘉波
点击右上角即可分享
微信分享提示