• Русский
  • Часто задаваемые вопросы

    Почему при импорте 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.