CKA – Requests & Limits / LimitRange的使用

Pod 层级的设定

Requests

  • 最低需要达到的请求标准,Kubernetes会自动寻找worker node, 只要空闲资源达到请求标准的worker node才会启动pod

Limits

  • 最大pod可用的资源,CPU 超过 limit 会被限速,但不会杀掉容器。内存超过 limit 会直接触发 OOM,容器被杀掉。

Pod使用案例

apiVersion: v1
kind: Pod
metadata:
  name: demo-pod
spec:
  containers:
  - name: app-container
    image: your-image:latest
    resources:
      requests:
        cpu: "250m"       # 请求 0.25 个 CPU
        memory: "128Mi"   # 请求 128Mi 内存
      limits:
        cpu: "500m"       # 限制最大使用 0.5 个 CPU
        memory: "256Mi"   # 限制最大使用 256Mi 内存

可以使用以下的命令查看woker node当中所有pod的request和limit

kubectl describe nodes [你的node名]

Namespace层级的设定 – LimitRange

可以在 Namespace 级别创建 LimitRange,为该 Namespace 中的 Pod/Container 自动注入默认的 requests 和 limits,或约束其最大最小值。

apiVersion: v1
kind: LimitRange
metadata:
  name: mem-cpu-limit-range
  namespace: your-namespace
spec:
  limits:
  - type: Container
    defaultRequest:
      cpu: "100m"
      memory: "64Mi"
    default:
      cpu: "500m"
      memory: "256Mi"
    min:
      cpu: "50m"
      memory: "32Mi"
    max:
      cpu: "1"
      memory: "512Mi"
  • defaultRequest:若 Pod 未指定 request,则使用该默认值。
  • default:若 Pod 未指定 limit,则使用该默认值。
  • min/max:对 request/limit 的范围进行约束。

Loading

Facebook评论