Разработка и эксплуатация

Kubernetes Resource CalculatorТочный смысл каждого количества

Переводите CPU и память или складывайте явно заданные ресурсы обычных контейнеров приложения.

Kubernetes Resource Calculator

Quantity или JSON контейнеров

Ввод обрабатывается в этом браузере и не отправляется на сервер.

Результат

Введите Quantity или загрузите пример.

Настройки

Семантика Quantity: k8s.io/apimachinery v0.34.1 (Kubernetes 1.34). Нормализованный десятичный вывод, не сериализация Go String() и не проверка кластера.

CPU требует неотрицательное значение в целых миллиядрах (1m = 0.001 CPU). Generic Quantity допускает более точные значения.

Ограничения: 256 символов на Quantity, показатель от −100 до 100, 100 000 единиц UTF-16, 100 контейнеров, 80 символов в имени. Нужна хотя бы одна цифра.

Ввод или настройки изменились. Пересчитайте перед экспортом.

Kubernetes Resource Calculator разделяет разбор Quantity и правила CPU и памяти. Проверьте 100m CPU, сравните Mi с M или вставьте массив контейнеров для проверки requests и limits.

Сравнивайте единицы CPU в ядрах и миллиядрах, а память — в точных байтах, Mi и Gi. Сумма описывает входные значения, а не измеренное потребление или рекомендуемое выделение.

Зачем нужен Kubernetes Resource Calculator?

Замечайте ошибку в суффиксе

В режиме CPU значения 100m и 0,1 CPU обозначают одну величину. Kubernetes Resource Calculator показывает 100m памяти как 0,1 байта. Сравнение десятичных и двоичных единиц помогает заметить путаницу m, M и Mi до повторного использования значения.

Одна десятая CPU и один из десяти маленьких блоков CPU обозначают одинаковую долю.

Сохраняйте видимость пропусков

Для каждого контейнера показаны requests и limits вместе с суммой. Пропуски остаются отмеченными и не превращаются в вводящий в заблуждение ноль или выдуманный лимит.

Три контейнера дают 2, 3 и 1 синий блок, всего 6; отсутствующее зелёное значение остаётся пунктирным.

Три проверки перед использованием

01

Выберите контекст ресурса

CPU требует целые миллиядра. Memory обрабатывает память, а Generic Quantity допускает более точные и отрицательные значения. Режим контейнеров принимает JSON-массив с именованными элементами.

02

Читайте суммы вместе с пропусками

Проверьте ресурсы и число отсутствующих полей. Если хотя бы один limit отсутствует, сумма заданных лимитов не задаёт конечный общий предел. Request автоматически из limit не заполняется.

03

Обновите результат и проверьте замену

Автоматический расчёт ждёт 350 мс. В ручном режиме используйте кнопку или Ctrl/Cmd+Enter. Пример, очистка и нормализация требуют просмотра и применения с возможностью отмены. Устаревший результат не экспортируется.

Четыре представления ресурсов

Перевод CPU

Ядра и целые миллиядра показаны вместе: 100m равно 0,1 CPU. Отрицательные ресурсы и дробные миллиядра отклоняются.

Перевод памяти

Сравнивайте точные байты, Mi и Gi. Дробные байты сохраняются; целые байты с округлением вверх показаны отдельно.

Разбор Generic Quantity

Проверяйте нормализованное десятичное значение по семантике apimachinery v0.34.1 с признаками наноокругления и насыщения BinarySI.

Суммы контейнеров приложения

Укажите name, requests и limits в JSON. Просмотрите суммы CPU/памяти, пропуски и лимиты ниже запросов без подключения к кластеру.

Формат и ограничения ввода

Строгий синтаксис
Регистр суффиксов важен: n, u, m, k, M, G, T, P, E и от Ki до Ei. e/E принимает целый показатель со знаком. Пробелы, MiB, GB и значения без цифр отклоняются.
Точность и диапазон
Основа — k8s.io/apimachinery v0.34.1. Значения точнее 1n округляются от нуля; BinarySI насыщается на ±(2^63−1). Десятичные значения точны и за пределами 64 бит. Нормализованный десятичный вывод не является канонической сериализацией Go String().
Контекст CPU и памяти
Ресурсы должны быть неотрицательными. Разобранный CPU должен быть кратен 1m. Для памяти 100m — это 0,1 байта, а отдельное округлённое вверх целое равно 1. Реальная единица выделения может быть больше.
Ограниченный JSON
До 256 символов на Quantity, показатель от −100 до 100, общий ввод до 100 000 единиц UTF-16 и 100 контейнеров с уникальными именами. Имена содержат 1–80 символов без управляющих. Допустимы только name, requests, limits и вложенные строки cpu/memory. Повторяющиеся ключи JSON отклоняются.
Только явные ресурсы приложения
Не поддерживаются YAML, полные манифесты, init-контейнеры, sidecar, overhead и ресурсы уровня Pod. Пропуски сохраняются без подстановки значений по умолчанию. Суммы не проверяют планирование, не измеряют потребление и не рекомендуют оптимальные квоты.

Вопросы: Kubernetes Resource Calculator

Что означает 100m CPU?

100m означает 100 миллиядер, то есть 0,1 CPU. Kubernetes Resource Calculator трактует 1000m и 1 как один CPU; 0.5m не проходит проверку точности CPU.

В чём разница между Mi и M?

Mi — это 1 048 576 байт, M — 1 000 000 байт. Строчная m означает тысячную долю байта. Сравните точные значения в режиме памяти.

Что происходит, если задан только лимит?

Если механизм допуска не задал request, Kubernetes может скопировать заданный limit в отсутствующий request. Инструмент сохраняет пропуск и объясняет это условие, не применяя настройки кластера.

Почему Pod остаётся в состоянии Pending?

Запрос может превышать доступную ёмкость узла, но причиной также бывают affinity, taints и другие ограничения. Локальные суммы не диагностируют кластер: проверьте события Pod и доступные для выделения ресурсы узлов.

Как выбрать запросы и лимиты CPU и памяти?

Используйте измерения под типичной нагрузкой и требования приложения. Kubernetes Resource Calculator проверяет количества и складывает заявленные значения; одной арифметики недостаточно для выбора безопасных или оптимальных запросов и лимитов.

Неожиданное значение?

Попробуйте Kubernetes Resource Calculator

Вставьте Quantity или массив контейнеров в Kubernetes Resource Calculator, проверьте текущий результат и экспортируйте JSON-отчёт.