Часто задаваемые вопросы

Содержание

Почему при импорте namespace не должно быть нескольких ResourceQuota?

При импорте namespace, если в нем содержится несколько ресурсов ResourceQuota, платформа выберет минимальное значение для каждого элемента квоты среди всех ResourceQuota и объединит их, в итоге создав один ResourceQuota с именем default.

Пример:

Namespace to-import, который нужно импортировать, содержит следующие ресурсы resourcequota:

---
apiVersion: v1
kind: ResourceQuota
metadata:
  name: a
  namespace: to-import
spec:
  hard:
    requests.cpu: "1"
    requests.memory: "500Mi"
    limits.cpu: "3"
    limits.memory: "1Gi"
---
apiVersion: v1
kind: ResourceQuota
metadata:
  name: b
  namespace: to-import
spec:
  hard:
    requests.cpu: "2"
    requests.memory: "300Mi"
    limits.cpu: "2"
    limits.memory: "2Gi"

После импорта namespace to-import в нем будет создан следующий ResourceQuota с именем default:

apiVersion: v1
kind: ResourceQuota
metadata:
  name: default
  namespace: to-import
spec:
  hard:
    requests.cpu: "1"
    requests.memory: "300Mi"
    limits.cpu: "2"
    limits.memory: "1Gi"

Для каждого ResourceQuota квоты ресурсов — это минимальное значение между a и b.

Поскольку Kubernetes проверяет каждый ResourceQuota независимо, при наличии нескольких ResourceQuota в namespace, после импорта рекомендуется удалить все ResourceQuota, кроме default. Это помогает избежать сложностей в расчетах квот из-за нескольких ResourceQuota, что может привести к ошибкам.

Почему при импорте namespace не должно быть нескольких LimitRanges?

При импорте namespace, если в нем содержится несколько ресурсов LimitRange, платформа не может объединить их в один LimitRange. Поскольку Kubernetes проверяет каждый LimitRange независимо, а поведение выбора значений по умолчанию из какого LimitRange будет использоваться — непредсказуемо.

Если в namespace содержится только один LimitRange, платформа создаст LimitRange с именем default и значениями из этого LimitRange.

Поэтому перед импортом namespace в нем должен быть только один LimitRange. После импорта рекомендуется удалить все LimitRange, кроме того, который называется default, чтобы избежать непредсказуемого поведения из-за нескольких LimitRange.