Облачная платформа

К разделу «Облачная платформа

Облачные ресурсы IaaS
Облачные ресурсы IaaS
Облачная платформа на базе собственных дата-центров уровня TIER III
Ускоренные вычисления на базе NVIDIA GPU
Ускоренные вычисления на базе NVIDIA GPU
Для сложных вычислений, машинного обучения и обработки видео/3D-графики
Частное облако
Частное облако
Защищенное частное облако (УЗ-1, К-1, лицензии ФСБ и ФСТЭК)
Кластеры Kubernetes
Кластеры Kubernetes
Развертывание, масштабирование, репликация и мониторинг контейнерных приложений
Защищенное облако 152-ФЗ
Защищенное облако 152-ФЗ
Размещение конфиденциальных данных в защищенной инфраструктуре и аудит работы с персональными данными
Резервное копирование для бизнеса
Резервное копирование для бизнеса
Автоматизированное управление резервными копиями виртуальных машин и баз данных
База данных в облаке
База данных в облаке
Управляемые СУБД с масштабированием по мере необходимости и высоким SLA
Миграция в облако Linx Cloud
Миграция в облако Linx Cloud
Перенос IT-инфраструктуры в облако Linx Cloud из других платформ
Объектное хранилище S3
Объектное хранилище S3
Защищенное объектное хранилище S3 по стандартам 152-ФЗ на платформе Linx Cloud
Облако для ВУЗов
Облако для ВУЗов
25% скидка на облачные сервисы от цены прайса на год!
Безопасность

К разделу «Безопасность

Статический анализ исходного кода SAST
Статический анализ исходного кода SAST
Облачный сервис для защиты приложений на этапе разработки исходного кода
Двухфакторная аутентификация MFA
Двухфакторная аутентификация MFA
Удаленный доступ – легко и безопасно. Сервис MFA подходит для любого типа инфраструктуры
Облачная защита WAF + AntiDDoS
Облачная защита WAF + AntiDDoS
Многоуровневая защита интернет-ресурсов и веб-приложений с минимальными вложениями
Аварийное восстановление в AWS
Аварийное восстановление в AWS
Быстрое и экономичное восстановление данных и приложений. RPO — секунды, RTO — минуты
DRaaS — аварийное восстановление
DRaaS — аварийное восстановление
Аварийное восстановление ИТ-инфраструктуры. Защитите ИТ-системы уже сегодня!
Межсетевой экран нового поколения NGFW
Межсетевой экран нового поколения NGFW
Виртуальный межсетевой экран нового поколения для комплексной защиты ресурсов в облаке
Антивирус
Антивирус
Защита инфраструктуры от вирусов и шифровальщиков
Сканирование на уязвимости
Сканирование на уязвимости
Мониторинг и оценка уязвимостей ИТ-инфраструктуры
Security Operations Center (SOC)
Security Operations Center (SOC)
Центр противодействия кибератакам на любом этапе инцидента
ГОСТ-VPN
ГОСТ-VPN
Защищенный канал связи для ИСПДн
Межсетевой экран
Межсетевой экран
Защита сети компании от несанкционированного доступа извне
Аттестация частного облака для ГИС
Аттестация частного облака для ГИС
Размещение госинформационных систем «под ключ» с соблюдением К1 и УЗ-1 (ИСПДн)
Security Awareness
Security Awareness
Обучение сотрудников навыкам информационной безопасности на базе онлайн-платформы
Тарифы База знаний
Облако
Ограничение ресурсов для подов

Ограничение ресурсов для подов

При распределении подов по нодам kube-scheduler проверяет requests и limits для контейнеров и текущую емкость нод. Это позволяет оптимально распределить поды по нодам для удовлетворения их требований и не допустить перегрузки нод. Повсеместное использование requests и limits для контейнеров является одной из лучших практик администрирования кластера Kubernetes.

REQUESTS И LIMITS

Если нода, на котором работает под, имеет достаточно доступных ресурсов, контейнер может использовать больше ресурсов, чем указано в 





                    

на этот ресурс. Однако контейнеру не разрешается использовать больше, чем его 





                    

 ресурсов.


Например, если вы задали для контейнера 





                    

 запрос на 256 Мбайт памяти, и этот контейнер находится в поде, запланированном для узла с 8 ГБ 





                    

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


Если вы установите ограничение памяти в 4 ГБ для этого контейнера, kubelet применит это ограничение. Далее исполняющая среда запретит контейнеру использовать больше, чем настроенный лимит ресурсов.


В кластерах Kubernetes от Linx Cloud для запускаемых контейнеров без указанных requests и limits применяются следующие значения по умолчанию:

  • Requests: 100m / 64Mb
  • Limits: 500m / 512Mb

Например, когда процесс в контейнере пытается использовать больше допустимого объема памяти, ядро системы завершает процесс, который пытался выделить, с ошибкой нехватки памяти (OOM).


Ограничения могут быть реализованы двумя способами:


1. Реактивно — система вмешивается, как только обнаруживает нарушение.

2. Принудительно — система предотвращает превышение лимита контейнером. В разных средах могут быть разные способы реализации одних и тех же ограничений.

Limits и requests для CPU измеряются в единицах cpu. Один cpu равен одному vCPU/ядру. Для оперативной памяти (memory) requests и limits указываются в байтах. Используйте следующие значения:

  • Число в байтах: 1073741824
  • Целые числа с указанием суффикса: E, P, T, G, M, k, m. Например, 64M, 2G.
  • Эквиваленты степени двойки: Ei, Pi, Ti, Gi, Mi, Ki. Например, 128Mi, 1Gi.

В примере ниже, под состоит из одного контейнера. Контейнеру указан 





                    

в 0.25 cpu и 128Mi памяти. При этом, из-за указанных 





                    

, контейнер не может использовать более чем 0.5 cpu и 256Mi памяти.





                    
Назначение ресурсов cpu
Подготовка к работе

Для начала работы понадобится кластер Kubernetes и инструмент командной строки kubectl, который настроен на связь с вашим кластером. Если у вас еще нет кластера, вы можете создать его на платформе.


Чтобы проверить версию Kubernetes, введите:





                    

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


Далее понадобится запущенный сервер метрик на вашем кластере. Если сервер метрик уже запущен, следующие шаги можно пропустить.


Проверьте, работает ли сервер метрик, выполнив команду:





                    

Если API ресурсов метрик доступно, в выводе будет присутствовать ссылка на metrics.k8s.io:





                    
Создание пространства имен

Создайте Namespace, чтобы создаваемые ресурсы были изолированы от остального кластера:





                    
Установка запроса и лимита cpu

Чтобы установить запрос CPU для контейнера, добавьте поле 





                    

 в манифест ресурсов контейнера. Для установки ограничения по CPU добавьте 





                    

.


Ниже мы создадим под, имеющий один контейнер. Затем зададим для контейнера запрос в 0.5 CPU и лимит в 1 CPU. Так же укажем запросы и лимиты для памяти в 128Mi и 256Mi соответственно. Конфигурационный файл для такого пода:





                    





                    

 — содержит аргументы для контейнера в момент старта. 





                    

 — аргумент, который говорит контейнеру попытаться использовать 2 CPU.


Создайте под:





                    

Удостоверимся, что под запущен:





                    

Посмотрим детальную информацию о поде:





                    

В выводе видно, что под имеет один контейнер с запросом в 500 милли-CPU / 128Mi и с ограничением в 1 CPU / 256Mi.





                    

Запустим kubectl top, чтобы получить метрики пода:





                    

В этом варианте вывода пода использовано 914 милли-CPU, что лишь чуть меньше заданного в конфигурации пода ограничения в 1 CPU.





                    

Напомним, что установкой параметра -cpu «2» для контейнера было задано попытаться использовать 2 CPU, однако в конфигурации присутствует ограничение всего в 1 CPU. Использование контейнером CPU было отрегулировано, поскольку он попытался занять больше ресурсов, чем ему позволено.


Удалите под командой:





                    

Если ограничения на использование контейнером CPU не установлены, возможны следующие варианты:


  • У контейнера отсутствует верхняя граница количества CPU доступных ему ресурсов. В таком случае он может занять все ресурсы CPU, доступные на ноде, на которой он запущен.
  • Контейнер запущен в пространстве имен, в котором задана стандартная величина ограничения ресурсов CPU. Тогда контейнеру автоматически присваивается это ограничение. Администраторы кластера могут использовать LimitRange, чтобы задать стандартную величину ограничения ресурсов CPU.


Можно эффективнее распоряжаться ресурсами CPU на нодах вашего кластера, если для запущенных контейнеров установить запросы и ограничения на использование ресурсов CPU. Если установить лимит больше, чем запрос, то:

  • При увеличении нагрузки, под может задействовать дополнительные ресурсы CPU;
  • Количество ресурсов CPU, которые Pod может задействовать при повышении нагрузки, будет ограничено разумной величиной

Очистка

Удилите созданное пространство имен командой:





                                
Остались вопросы?

Опишите вашу задачу, и мы поможем вам ее решить

Или напишите нам info@linxdatacenter.com
Нажимая кнопку «Отправить», вы соглашаетесь с Политикой обработки персональных данных ООО «Связь ВСД»