狂自私

导航

K8S QoS等级

在 Kubernetes 中,QoS(Quality of Service)等级用于定义 Pod 的资源管理策略,以确保在资源不足时,系统能够优先处理关键工作负载。Kubernetes 将 Pod 分为三种 QoS 等级:

1. Guaranteed(保证型)

  • 定义:所有容器都必须为其请求和限制设置相同的 CPU 和内存值。
  • 用途:适用于需要稳定性能的关键应用。
  • 行为:在资源紧张时,Guaranteed Pod 不会被驱逐。

示例:

apiVersion: v1
kind: Pod
metadata:
  name: guaranteed-pod
spec:
  containers:
    - name: app
      image: my-app
      resources:
        requests:
          memory: "512Mi"
          cpu: "500m"
        limits:
          memory: "512Mi"
          cpu: "500m"

2. Burstable(突发型)

  • 定义:容器的请求和限制不相同。至少一个容器有请求小于限制的情况。
  • 用途:适用于偶尔需要高性能的应用,同时又希望在资源不足时能够被驱逐。
  • 行为:在资源紧张时,Burstable Pod 的优先级低于 Guaranteed Pod,但高于 BestEffort Pod。

示例:

apiVersion: v1
kind: Pod
metadata:
  name: burstable-pod
spec:
  containers:
    - name: app
      image: my-app
      resources:
        requests:
          memory: "256Mi"
          cpu: "250m"
        limits:
          memory: "1Gi"
          cpu: "1"

3. BestEffort(最佳努力型)

  • 定义:没有设置请求和限制,或者所有容器的请求和限制均为零。
  • 用途:适用于不重要的、可被随时驱逐的工作负载。
  • 行为:在资源紧张时,BestEffort Pod 是最容易被驱逐的。

示例:

apiVersion: v1
kind: Pod
metadata:
  name: besteffort-pod
spec:
  containers:
    - name: app
      image: my-app
      resources: {}

总结

Kubernetes 的 QoS 等级通过 Guaranteed、Burstable 和 BestEffort 三种类别来管理 Pod 的资源分配和优先级。选择合适的 QoS 等级可以帮助管理员有效地管理集群资源,提高关键应用的可用性和性能。

posted on 2024-09-08 16:30  狂自私  阅读(56)  评论(0编辑  收藏  举报