Ответ
Request (запрос) в спецификации Pod — это гарантированное количество вычислительных ресурсов (CPU и памяти), которое Kubernetes резервирует для контейнера. Это минимальное количество, которое контейнеру будет доступно на ноде.
Основная цель: Планировщик Kubernetes использует requests, чтобы выбрать ноду, на которой можно разместить под, исходя из доступных (незарезервированных) ресурсов.
Пример определения в манифесте:
apiVersion: v1
kind: Pod
metadata:
name: my-app-pod
spec:
containers:
- name: app-container
image: myapp:1.0
resources:
requests:
cpu: "250m" # 250 милли-CPU (0.25 ядра)
memory: "512Mi" # 512 Мебибайт
limits:
cpu: "500m"
memory: "1Gi"
Ключевые аспекты:
- Гарантия: Kubernetes гарантирует, что контейнер получит как минимум указанный объём ресурсов.
- Отличие от Limit:
limit— это максимальный объём ресурсов, который контейнер может использовать. Контейнер может потреблять больше, чемrequest, но не больше, чемlimit. - Влияние на QoS (Quality of Service): Значения
requestsиlimitsопределяют класс качества обслуживания пода (Guaranteed, Burstable, BestEffort), что влияет на приоритет при нехватке ресурсов на ноде. - Оверсабскрайбинг: Если
requestsне указаны или занижены, нода может быть перегружена (oversubscribed), что приведёт к нехватке ресурсов и возможному убийству (eviction) подов.