• Русский
  • Основные понятия

    Opencost

    OpenCost — это инструмент с открытым исходным кодом для мониторинга и управления затратами в Kubernetes, предназначенный для отслеживания и анализа использования ресурсов и затрат в кластерах Kubernetes в режиме реального времени. Он предоставляет точные данные о потреблении ресурсов, чтобы помочь пользователям оптимизировать распределение ресурсов и контролировать расходы.

    Для получения дополнительной информации, пожалуйста, обратитесь к официальному сайту OpenCost.

    Cost Model

    Cost Model определяет правила выставления счетов и цены на ресурсы внутри кластеров. Он включает:

    • Billing Items: ресурсы, подлежащие оплате (CPU, Memory, Storage)
    • Billing Methods: способы измерения и выставления счетов за ресурсы
    • Unit Prices: базовые цены для каждого типа ресурса
    • Label-based Pricing: дифференцированное ценообразование на основе меток
    • Cluster Association: к каким кластерам применяется модель

    Cost models помогают определить ресурсы и единичные цены, которые необходимо учитывать при выставлении счетов в кластерах. Платформа будет измерять и выставлять счета для каждого кластера на основе cost model.

    Billing Method Description

    Billing ItemBilling MethodBilling RulesDescription
    CPUUsage (Core-hours)Рассчитывается почасово на основе AVG(Usage) POD за последний час, умноженного на фактическую продолжительность POD (считается 5 минут, если меньше 5 минут).Основано на фактическом потреблении CPU
    CPURequest (Core-hours)Рассчитывается почасово на основе Request POD за последний час, умноженного на фактическую продолжительность POD (считается 5 минут, если меньше 5 минут).Основано на запросах ресурсов CPU
    CPUEffective Usage (Core-hours)Рассчитывается почасово на основе максимального значения между AVG(Usage) и Request POD за последний час, умноженного на фактическую продолжительность POD (считается 5 минут, если меньше 5 минут).Текущий метод по умолчанию, использует большее из usage или request
    CPUProject Quota (Core-hours)Рассчитывается почасово на основе выделенного проекту лимита CPU quota, умноженного на продолжительность времени. Расчет сегментируется при изменении квоты.Основано на квотах ресурсов на уровне проекта
    MemoryUsage (GiB-hours)Рассчитывается почасово на основе AVG(Usage) POD за последний час, умноженного на фактическую продолжительность POD (считается 5 минут, если меньше 5 минут).Основано на фактическом потреблении памяти
    MemoryRequest (GiB-hours)Рассчитывается почасово на основе Request POD за последний час, умноженного на фактическую продолжительность POD (считается 5 минут, если меньше 5 минут).Основано на запросах ресурсов памяти
    MemoryEffective Usage (GiB-hours)Рассчитывается почасово на основе максимального значения между AVG(Usage) и Request POD за последний час, умноженного на фактическую продолжительность POD (считается 5 минут, если меньше 5 минут).Текущий метод по умолчанию, использует большее из usage или request
    MemoryProject Quota (GiB-hours)Рассчитывается почасово на основе выделенного проекту лимита memory quota, умноженного на продолжительность времени. Расчет сегментируется при изменении квоты.Основано на квотах ресурсов на уровне проекта
    StorageRequest Volume (GiB-hours)Рассчитывается почасово на основе размера Request PV за последний час, умноженного на фактическую продолжительность PV (считается 5 минут, если меньше 5 минут). Если PV одновременно смонтирован к нескольким POD, использование PV равномерно распределяется между каждым POD.PV, которые не смонтированы ни к одному POD, учитываются как незамонтированные записи, с именем объекта *unmounted-pvcs.

    Текущие статистические проблемы будут решены в будущих версиях:

    • Когда POD StatefulSet останавливается и перезапускается, платформа будет использовать самое раннее время работы POD в этот день как время начала и самое позднее время работы как время окончания, игнорируя промежутки времени, когда POD не работал.