Deployments
Деплойменты (Deployments) - это механизм для управления и масштабирования подов (pods), которые составляют приложение в Kubernetes. Это означает, что Deployments предоставляют возможность создавать, обновлять и масштабировать приложения Kubernetes. Deployments помогают контролировать развертывание новой версии приложения и управлять его масштабированием. Они также обеспечивают управление жизненным циклом приложения, включая автоматическое восстановление при сбоях и автоматическое масштабирование в зависимости от запросов.
На вкладке Deployments находится перечень созданных деплойментов в контексте неймспейса.
Создание Deployment
Чтобы добавить новый Deployment, нажмите на кнопку + Добавить Deployment.
Скриншот

В открывшемся окне заполните описание деплоймента.
В блоке “Управление развертыванием”:
- установите количество реплик. По умолчанию стоит 1 реплика;
- установите тип деплоймента. По умолчанию выбран RollingUpdate;
- установите, приостановлен ли деплоймент. По умолчанию значение не задано;
- для деплоймента с типом RollingUpdate установите максимальное значение недоступных и дополнительных реплик. По умолчанию стоит 25%;
- установите ProgressDeadlineSeconds - время ожидания для развертывания в секундах, прежде чем оно будет признано завершенным с ошибкой. По умолчанию задано 600 сек (10 минут). В этом случае, прежде чем контроллер укажет, что процесс развертывания остановился, должно пройти 10 минут;
- установите RevisionHistoryLimit - количество ReplicaSets, которые необходимо сохранить для возможности отката. По умолчанию задано 10.
Скриншот

В блоке Шаблон пода (Pod template) доступны настройки:
- использовать ли hostPID? По умолчанию значение не выбрано.
- использовать ли сеть хоста? По умолчанию значение не выбрано.
- выберите секреты образов (Image Pull Secrets) из выпадающего списка. В списке представлены секреты, созданные на вкладке Хранилище раздела Неймспейс.
- назначьте приоритет. Приоритет отображает важность пода относительно других подов в кластере. Если поду не хватает ресурсов для запуска, планировщик отдает приоритет подам с более высоким значением приоритета.
- задайте имя хоста контейнера.
- при необходимости создайте Tolerations. Для создания нажмите на + и заполните поля в появившемся окне.
- задайте узлы. Для этого нажмите на + в селекторе узлов.
- выберите ServiceAccountName из выпадающего списка.
- определите, нужно ли подключить токен учетной записи. По умолчанию значение не задано.
Скриншот

В блоках Контейнеры инициализации (Init контейнеры) и Контейнеры доступны настройки:
- назначьте имя контейнера;
- введите значение образа;
- назначьте Image Pull Policy. По умолчанию выбрано ifNotPresent;
- при необходимости добавьте команды и аргументы;
- пропишите порты. Чтобы добавить новый порт нажмите +.
Скриншот

- задайте вычислительные ресурсы. Для этого установите:
- значения реквеста и лимита CPU. Можно задать в CPU или m (милли-CPU).
- значения реквеста и лимита Memory. Можно задать в единицах измерения стандартных для Kubernetes: байт (B), кибибайт (Ki), мебибайт (Mi), гибибайт (Gi).
Скриншот

- задайте Volume mounts. Для добавление нового Volume mount нажмите +.
Скриншот

- задайте переменные окружения. Для добавления новой переменной нажмите +.
Скриншот

Подробнее настройки разделов описаны на странице Pods.
После завершения настроек нажмите Добавить.
Просмотр созданного Deployment
Страница просмотра деплоймента представляет собой страницу с вкладками:
- Deployment
- Шаблон пода (включает в себя Контейнеры в т.ч. Init Контейнеры, Volumes)
- HPA
- ReplicaSets
- Pods (имеет индикацию количества)
- Безопасность
- Лейблы и аннотации. Содержит список лейблов и аннотаций дейплоймента
- События (имеет индикацию количества)
- Манифест
Вкладка Deployment
Скриншот

Вкладка Deployment содержит сведения о деплойменте, дате и времени создания деплоймента, его статусе и состоянии. В блоке “Спецификация” доступны сведения:
- Название
- Тип развертывания
- Приостановлено/Не приостановлено
Блок масштабирования деплоймента позволяет изменять количество реплик.
Блок “Метрики мониторинга” отображает данные CPU Usage и Memory Usage всех объектов деплоймента суммарно за прошедший час.
Доступен “Селектор подов”.
Вкладка Шаблон пода
Скриншот

Содержит сведения о шаблоне пода, контейнерах, Init контейнерах и volumes деплоймента.
Вкладка HPA
Скриншот

На вкладке HPA есть возможность управлять автоматическим масштабированием подов деплоймента. Укажите целевое среднее количество или среднее относительное значение за последние 5 минут по ресурсам:
- CPU;
- Memory.
При превышении значения, количество подов будет увеличено в пределах заданного диапазона количества реплик. При снижении нагрузки, уменьшено.Объект HPA создается с автоматически генерированным названием. Управление объектом доступно только с вкладки созданного деплоймента. Есть возможность просмотреть/отредактировать манифест объекта, а также удалить ранее созданный HPA.
Вкладка ReplicaSets
Скриншот

Содержит список репликасетов, входящих в деплоймент, и сведения:
- когда создан репликасет;
- статус;
- общее количество подов и количество работающих подов;
- сведения образа репликасета.
Нажатие на строку репликасета открывает страницу просмотра репликасета.
Вкладка Pods
Скриншот

Содержит список подов, подчиненных деплойменту и сведения:
- Имя пода (доступна фильтрация).
- Отношение количества работающих контейнеров к общему количеству контейнеров в поде.
- Количество рестартов пода (доступна сортировка).
- Дата создания (доступна сортировка).
- Неймспейс (доступна фильтрация). Нажатие на имя неймспейса открывает дашборд неймспейса. Вы можете ввести значение для фильтрации подов по неймспейсам. Для отмены фильтрации по неймспейсам, в фильтре нажмите Отменить и далее Применить.
- Статус (доступна фильтрация). Возможные значения для выбора в фильтре: Running, Pending, Terminating, CrashLoopBackOff, Completed, Failed, Unknown.
- Какому родительскому объекту подчинен под (доступна фильтрация). Когда под подчинен нагрузке, нажатие на имя нагрузки открывает ее страницу просмотра.
- Узел, на котором размещен под (доступна фильтрация). Нажатие на узел открывает страницу просмотра узла при наличии прав доступа.
- QoS (Quality of Service) пода (доступна фильтрация по: Guaranteed, Burstable, BestEffort). Подробнее о QoS на странице Pods.
- Лейблы пода (по умолчанию колонка Лейблы не отображается). Чтобы просмотреть лейблы подов, нажмите на шестеренку в правом углу таблицы и выберите колонку Лейблы для отображения на экране.
Нажатие на строку пода открывает страницу просмотра пода.
Вкладка Безопасность
Скриншот

Вкладка “Безопасность” содержит:
- результаты сканирования образов на уязвимости по объектам, содержащимся в этом деплойменте (Отображается только если в кластере установлен Модуль сканирования образов контейнеров);
- результаты анализа на соответствие политикам безопасности объектов, содержащихся в этом деплойменте (Отображается только если в кластере установлен Модуль анализа конфигураций приложений).
Вкладка События
Скриншот

Содержит events деплоймента и его объектов со сведениями:
- индикатор типа события;
- дата и время;
- источник события;
- текст сообщения события.
Вкладка Манифест
Скриншот

На вкладке Манифест страницы просмотра и редактирования ранее созданного Deployment вы можете внести изменения в YAML манифест, скопировать манифест или удалить Deployment. После изменения манифеста выполните проверку. Результат проверки будет доступен в правой части экрана. Раскройте блок результата проверки, чтобы увидеть полный манифест. Если валидация формата манифеста не пройдена, проверка манифеста не будет доступна.
Сохраните изменения, внесенные в манифест. Несохраненные данные не будут применены. Если Deployment имеет хотя бы один привилегированный контейнер, информация об этом будет отображена на вкладке.