Нагрузки

Deployments

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

На вкладке "Deployments" находится перечень созданных деплойментов в контексте неймспейса.

Создание Deployment

Чтобы добавить новый Deployment, нужно нажать на кнопку + Добавить Deployment.

В открывшемся окне нужно заполнить описание деплоймента (рисунок 271).

Рисунок 271 ‒ Добавление Deployment

В блоке "Управление развертыванием":

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

В блоке "Шаблон пода (Pod template)" доступны настройки (рисунок 272):

Рисунок 272 ‒ Шаблон пода

  • Использовать ли hostPID? ‒ по умолчанию значение не выбрано;
  • Использовать ли сеть хоста? ‒ по умолчанию значение не выбрано;
  • выбрать "Секреты образов (Image Pull Secrets)" из выпадающего списка. В списке представлены секреты, созданные на вкладке "Хранилище" раздела "Неймспейс";
  • назначить "Приоритет". Приоритет отображает важность пода относительно других подов в кластере. Если поду не хватает ресурсов для запуска, планировщик отдает приоритет подам с более высоким значением приоритета;
  • задать "Имя хоста контейнера";
  • при необходимости создать Tolerations, нажав на + и заполнив поля в появившемся окне;
  • задать узлы, для чего нажать на + в поле "Селектор узлов";
  • выбрать "ServiceAccountName" из выпадающего списка;
  • определить, нужно ли подключить токен учетной записи (по умолчанию значение не задано).

В блоках "Контейнеры инициализации (Init контейнеры)" и "Контейнеры" доступны настройки (рисунок 273):

Рисунок 273 ‒ Контейнеры инициализации

  • назначить "Имя контейнера";
  • ввести значение "Образа";
  • назначить "Image Pull Policy" (по умолчанию выбрано ifNotPresent);
  • при необходимости добавить "Команды" и "Аргументы";
  • прописать "Порты". Чтобы добавить новый порт, нажать + (рисунок 274).

Рисунок 274 ‒ Добавление порта

  • задать вычислительные "Ресурсы" (рисунок 275), для чего установить:
  • значения реквеста и лимита CPU; можно задать в CPU или m (милли-CPU);
  • значения реквеста и лимита Memory; можно задать в единицах измерения стандартных для Kubernetes: байт (B), кибибайт (Ki), мебибайт (Mi), гибибайт (Gi).

Рисунок 275 ‒ Ресурсы

  • задать "Volume mounts". Для добавление нового Volume mount нажать + (рисунок 276).

Рисунок 276 ‒ Добавление Volume mount

  • задать "Переменные окружения". Для добавления новой переменной нажать + (рисунок 277).

Рисунок 277 ‒ Добавление переменной

После завершения настроек нужно нажать Добавить.

Просмотр созданного Deployment

Страница просмотра деплоймента представляет собой страницу с вкладками. Под заголовком отображаются дата и время создания деплоймента, его статус и состояние.

На странице доступны вкладки:

  • Deployment;
  • Шаблон пода (включает "Контейнеры", в т.ч. "Init Контейнеры", "Volumes");
  • HPA;
  • ReplicaSets;
  • Pods (имеет индикацию количества);
  • Безопасность;
  • Лейблы и аннотации (содержит список лейблов и аннотаций дейплоймента);
  • События (имеет индикацию количества);
  • Манифест.

Вкладка Deployment

Вкладка "Deployment" содержит сведения о деплойменте (рисунок 278). В блоке "Спецификация" доступны сведения:

Рисунок 278 ‒ Вкладка "Deployment"

  • Название;
  • Тип развертывания;
  • Приостановлено/Не приостановлено.

Блок масштабирования деплоймента позволяет изменять количество реплик.

Блок "Метрики мониторинга" отображает данные "CPU Usage" и "Memory Usage" всех объектов деплоймента суммарно за прошедший час; доступен "Селектор подов".

Вкладка "Шаблон пода"

Вкладка "Шаблон пода" содержит сведения о шаблоне пода, контейнерах, Init-контейнерах и volumes деплоймента (рисунок 279).

Рисунок 279 ‒ Вкладка "Шаблон пода"

Вкладка "HPA"

На вкладке HPA (рисунок 280) есть возможность управлять автоматическим масштабированием подов деплоймента. Можно указать целевое среднее количество или среднее относительное значение за последние 5 минут по ресурсам:

  • CPU;
  • Memory.

Рисунок 280 ‒ Вкладка "HPA"

При превышении значения количество подов будет увеличено в пределах заданного диапазона количества реплик. При снижении нагрузки ‒ уменьшено. Объект HPA создается с автоматически сгенерированным названием. Управление объектом доступно только с вкладки созданного деплоймента. Есть возможность просмотреть/отредактировать манифест объекта, а также удалить ранее созданный HPA.

Вкладка "ReplicaSets"

Вкладка "ReplicaSets" (рисунок 281) содержит список replicasets, входящих в деплоймент, и сведения:

  • когда создан replicaset;
  • статус;
  • общее количество подов и количество работающих подов;
  • сведения образа replicaset.

Рисунок 281 ‒ Вкладка "ReplicaSets"

Нажатие на строку replicaset открывает страницу просмотра "replicaset".

Вкладка "Pods"

Вкладка "Pods" (рисунок 282) содержит список подов, подчиненных деплойменту и сведения о дате создания, статусе (цветовая индикация), лейблах пода. Чтобы просмотреть лейблы подов, добавить колонку "Лейблы" для отображения на экране. Нажатие на строку пода открывает страницу просмотра пода.

Рисунок 282 ‒ Вкладка "Pods"

Вкладка "Безопасность"

Вкладка "Безопасность" (рисунок 283) содержит:

  • результаты сканирования образов на уязвимости по объектам, содержащимся в этом деплойменте (отображается, только если в кластере установлен "Модуль сканирования образов контейнеров");
  • результаты анализа на соответствие политикам безопасности объектов, содержащихся в этом деплойменте (отображается, только если в кластере установлен "Модуль анализа конфигураций приложений").

Рисунок 283 ‒ Вкладка "Безопасность"

Вкладка "События"

Вкладка "События" содержит (рисунок 284) события деплоймента и его объектов со сведениями:

  • индикатор типа события;
  • дата и время;
  • источник события;
  • текст сообщения события.

Рисунок 284 ‒ Вкладка "События"

Вкладка "Манифест"

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

Необходимо сохранить изменения, внесенные в манифест, т.к. несохраненные данные не будут применены.

Рисунок 285 ‒ Вкладка "Манифест"

ReplicaSets

ReplicaSet ‒ это компонент в РОСА Кубис, который обеспечивает высокую доступность приложения, создавая и управляя множеством идентичных подов в кластере Комплекса. В случае сбоя в работе одного из подов ReplicaSet автоматически восстанавливает его и поддерживает необходимое количество работоспособных копий приложения в рабочем состоянии. Можно использовать ReplicaSet для распределения нагрузки в приложении, обеспечивая высокую доступность и отказоустойчивость, что повышает надежность инфраструктуры и уменьшает время простоя приложения.

Страница "ReplicaSets" содержит информация о наборе реплик (копий) подов, запущенных в кластере Комплекса в контексте неймспейса. Т.к. replicasets являются частью деплоймента, параметры replicasets недоступны для редактирования на странице "ReplicaSets". Чтобы отредактировать параметры, нужно перейти на страницу "Deployments".

Просмотр ReplicaSet

Страница просмотра replicaset представляет собой страницу с вкладками. На странице "Replicasets" отображаются дата и время создания, статус, conditions, сведения о родительском объекте (рисунок 286).

Рисунок 286 ‒ Вкладка "ReplicaSet"

На странице доступны вкладки:

  • ReplicaSet;
  • Pods (имеет индикацию количества);
  • Шаблон пода (имеет индикацию количества, содержит данные по контейнерам и init-контейнерам), Volumes (имеет индикацию количества);
  • Безопасность;
  • Лейблы и аннотации (содержит список лейблов и аннотаций replicaset);
  • События (имеет индикацию количества);
  • Манифест.

Вкладка "ReplicaSet"

Вкладка "ReplicaSet" содержит сведения:

  • Количество реплик;
  • minReadySeconds.

Блок "Селектор подов" содержит совпадающие выражения и совпадающие лейблы подов.

Блок "Метрики мониторинга" отображает данные "CPU Usage" и "Memory Usage" всех объектов replicaset суммарно за прошедший час.

Вкладка "Pods"

Вкладка "Pods" (рисунок 287) содержит список подов, подчиненных replicaset и сведения о дате создания, статусе (цветовая индикация), лейблах пода. Чтобы просмотреть лейблы подов, можно добавить колонку "Лейблы" для отображения на экране. Нажатие на строку пода открывает страницу просмотра пода.

Рисунок 287 ‒ Вкладка "Pods"

Вкладка "Шаблон пода"

Вкладка "Шаблон пода" (рисунок 288) содержит сведения о шаблоне пода, контейнерах, Init-контейнерах и volumes replicaset.

Рисунок 288 ‒ Вкладка "Шаблон пода"

Вкладка "Безопасность"

Вкладка "Безопасность" (рисунок 289) содержит:

  • результаты сканирования образов на уязвимости по объектам, содержащимся в этом replicaset (отображается, только если в кластере установлен "Модуль сканирования образов контейнеров");
  • результаты анализа на соответствие политикам безопасности объектов, содержащихся в этом replicaset (отображается, только если в кластере установлен "Модуль анализа конфигураций приложений").

Рисунок 289 ‒ Вкладка "Безопасность"

Вкладка "События"

Вкладка "События" (рисунок 290) содержит сведения events replicaset:

  • индикатор типа события;
  • дата и время;
  • источник события;
  • текст сообщения события.

Рисунок 290 ‒ Вкладка "События"

Вкладка "Манифест"

На вкладке "Манифест" страницы "ReplicaSets" можно просмотреть и скопировать YAML-манифест.

Pods

Под ‒ это минимальная вычислительная единица, которая объединяет один или несколько контейнеров в кластере. Каждый под имеет набор ресурсов, включая сеть, хранилище и образ контейнера. Каждый под может иметь свое уникальное имя и лейблы, что позволяет легко настраивать его параметры и конфигурацию. Поды также являются обязательными для создания высокодоступных и масштабируемых приложений в кластере.

Страница "Pods" содержит информацию о созданных подах.

На странице пода можно просмотреть информацию о поде, посмотреть лог контейнеров пода и открыть окно терминала. Для перехода в терминал нужно в правой верхней части окна нажать на кнопку вызова терминала. Для запуска терминала в контейнере должен быть shell.

Примечание ‒ Bash не поддерживается.

Следует обратить внимание, что корректная работа терминала гарантируется только в браузере Google Chrome.

При необходимости можно скачать лог контейнера пода во время его просмотра. Просмотр полного лога контейнера доступен в консоли/интерфейсе OpenSearch.

Создание Pod

Чтобы создать под, нужно нажать на кнопку + Добавить Pod. В блоке "Спецификация пода (Pod spec)" доступны настройки (рисунок 291):

Рисунок 291 ‒ Создание Pod

  • использовать ли hostPID? (по умолчанию выбрано "Нет");
  • использовать ли сеть хоста? (по умолчанию выбрано "Нет");
  • определить политику перезапуска контейнеров. По умолчанию устанавливается "Always", то есть контейнер будет перезапускаться после любого завершения. Можно выбрать политику перезапуска контейнера только в случае его завершения с ошибкой ‒ "OnFailure", а также политику, которая не будет перезапускать автоматически завершенный контейнер, ‒ "Never";
  • выбрать секреты образов (Image Pull Secrets) из выпадающего списка. В списке представлены секреты, созданные на вкладке "Хранилище" раздела "Неймспейс";
  • задать имя хоста контейнера;
  • при необходимости создать Tolerations, нажав на + и заполнив поля в появившемся окне (рисунок 292):
  • при необходимости задать "Ключ taint узла". Чтобы Toleration распространялся на любые ключи Taints узлов, следует оставить поле ключа пустым и выбрать оператор "Exists", а также задать "Эффект" Taint узла;
  • при необходимости задать "Значение" Taint узла. Если не заполнено значение, Toleration распространяется на любые значения Taint узлов;
  • выбрать "Оператор": "Exists" (существование), "Equal" (равенство). Указать "Exists", если необходимо соответствие по ключу Taint узла. Если требуется, чтобы значение соответствовало значению Taint узлов, выбрать "Equal" (по умолчанию установлено "Equal").
  • при необходимости задать время в секундах, в течение которого действует Toleration. По истечении указанного времени под будет вытеснен, если Taint не будет снят с узла.
  • при необходимости задать "Эффект" Taint узла: NoSchedule, PreferNoSchedule, NoExecute, Любой. Эффект "Любой" соответствует выбору всех эффектов с указанным ключом Taint узла.

Рисунок 292 ‒ Создание Tolerations

  • задать узлы, для чего нажать на + в селекторе узлов;
  • выбрать "ServiceAccountName" из выпадающего списка;
  • определить, нужно ли подключить токен учетной записи (по умолчанию значение не задано).

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

Доступные параметры для конфигурирования "Security context" (рисунок 293):

  • fsGroup ‒ определяет группу файловой системы, в которой будут изменены владелец и разрешения для файлов при монтировании тома в под:
  • выбрать "1. (FSGroup для всех файлов тома)", если необходимо, чтобы FSGroup была владельцем для всех файлов тома; Следует обратить внимание, что изменение владельца и разрешений всех файлов тома может вызвать задержки запуска пода для больших файловых систем;
  • выбрать "2. (FSGroup только для новых создаваемых файлов)", если следует установить FSGroup владельцем новых создаваемых файлов тома;
  • выбрать "3. (rw-rw—-)" при необходимости дополнения прав на чтение и запись в создаваемых файлах тома для владельца и пользователей группы владельца;
  • чтобы отменить свой выбор или, если нет необходимости в конфигурировании, указать "Не выбрано";
  • если fsGroup не выбран, Kubelet не будет изменять владельца и разрешения для файлов тома;
  • Политика изменения FSGroup:
  • выбрать OnRootMismatch, чтобы разрешения для файлов тома были изменены только в случае несовпадения с разрешениями корневого каталога;
  • при выборе Always всегда будут изменяться разрешения при монтировании тома; Следует обратить внимание, что политика изменения не применяется к типам томов: "secret", "configmaps" и "emptydir";
  • runAsGroup ‒ идентификатор группы для запуска контейнеров в поде, чтобы контейнер не был запущен с привилегиями root. Если не установлен, то основной идентификатор группы (GID) будет root;
  • runAsUser ‒ идентификатор пользователя для запуска контейнеров в поде, чтобы контейнер не был запущен с привилегиями root. Если не установлен, то идентификатор пользователя (UID) будет root;
  • runAsNonRoot ‒ запустить контейнеры без привилегий root. Если требуется, чтобы контейнеры были запущены с привилегиями root, выбрать "Нет"; в случае выбора "Не определено" параметр не будет установлен в "Security context";
  • supplementalGroups ‒ дополнительные идентификаторы групп для применения к процессам в контейнере, а также к GID и fsGroup. Можно добавить несколько дополнительных идентификаторов групп, нажав + Добавить идентификатор группы и указав идентификатор, например 3000;
  • "Список значений sysctl +" ‒ чтобы добавить параметры ядра (sysctl), которые необходимо установить, нажать +, задать ключ и при необходимости значение ключа для параметра. Следует обратить внимание, что при указании небезопасных sysctl под не будет запущен, пока хотя бы на одном узле не будут включены указанные sysctl.
  • Профиль Seccomp:
  • чтобы использовать профиль для контейнеров пода, определенный в файле на узле, выбрать "Использовать настроенный профиль" и указать имя профиля. Предварительно необходимо установить файл профиля Seccomp на узел. Подробнее о создании профиля Seccomp и применении в кластере см. п. Профиль Seccomp;
  • выбрать "Профиль по умолчанию", если нужно использовать профиль по умолчанию для среды выполнения контейнера;
  • выбрать "Профиль не применять", если не требуется ограничивать доступ к определенным системным вызовам из контейнеров пода.

Рисунок 293 ‒ Security context

В блоках "Init Контейнера/Контейнеры" (рисунок 294) необходимо настроить конфигурацию контейнеров:

  • ввести имя контейнера и образа;
  • при необходимости указать рабочий каталог контейнера (Workdir);
  • выбрать политику извлечения изображений. По умолчанию устанавливается Always, то есть kubelet всегда будет пытаться извлечь последний образ. Можно выбрать политику завершения контейнера с ошибкой, если извлечение не удастся, ‒ IfNotPresent, а также политику, при которой kubelet будет использовать только локальный образ, ‒ Never.
  • при необходимости добавления команд, аргументов, портов и переменных окружения выбрать профиль Seccomp. Следует обратить внимание, что конфигурация профиля Seccomp в контейнере переопределит настройки профиля, установленные в поде.
  • смонтировать тома внутрь контейнеров ‒ указать имя и путь тома (mountPath), способ распространения от хоста к контейнеру и наоборот (mountPropagation; по умолчанию способ не задан), при необходимости путь внутри тома (subPath) и расширенный путь в пределах тома (subPathExpr);
  • указать запросы и лимиты на ресурсы для контейнера пода. Для этого:
  • выбрать единицу измерения (CPU или m) для запроса и лимита CPU и задать значение;
  • выбрать единицу измерения для запроса и лимита Memory и задать значение. Выбрать можно единицы стандартные для Kubernetes: байт (B), кибибайт (Ki), мебибайт (Mi), гибибайт (Gi);

Рисунок 294 ‒ Блоки "Init Контейнеры/Контейнеры"

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

Доступные параметры для конфигурирования "Security context" (рисунок 295):

  • runAsGroup ‒ идентификатор группы для запуска контейнера, чтобы контейнер не был запущен с привилегиями root. Если не установлен, то основной идентификатор группы (GID) контейнера будет root;
  • runAsUser ‒ идентификатор пользователя для запуска контейнера, чтобы контейнер не был запущен с привилегиями root. Если не установлен, то основной идентификатор пользователя (UID) контейнера будет root;
  • runAsNonRoot ‒ запустить контейнер без привилегий root. Если необходимо, чтобы контейнер был запущен с привилегиями root, выбрать "Нет". В случае выбора "Не определено" параметр не будет установлен в "Security context";
  • Профиль Seccomp:
    • чтобы использовать профиль для контейнера пода, определенный в файле на узле, выбрать "Использовать настроенный профиль" и указать имя профиля. Предварительно необходимо установить файл профиля Seccomp на узел. Подробнее о создании профиля Seccomp и применении в кластере см. в п. Профиль Seccomp;
    • выбрать "Профиль по умолчанию", если требуется использовать профиль по умолчанию для среды выполнения контейнера;
    • выбрать "Профиль не применять", если не требуется ограничивать доступ к определенным системным вызовам из контейнера пода.

Следует обратить внимание, что конфигурация "Security context" в контейнере переопределяет настройки контекста, установленные в поде.

Рисунок 295 ‒ Security context

Важно:

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

В блоке "Volumes" добавить тома (Volumes) в под, которые могут быть смонтированы в контейнеры:

  • ввести имя тома (Volume) и выбрать один из типов:
    • ConfigMap ‒ указать имя ConfigMap и при необходимости режим доступа (defaultMode);
    • DownwardAPI ‒ следует использовать, если необходимо предоставить информацию о Pod контейнерам Pod. Указать имя файла хранения поля и добавить поле "Pod". Возможные поля Pod для указания: аннотации, метки, имя и пространство имен;
    • EmptyDir ‒ эфемерный и пустой тип тома для чтения и записи одних и тех же файлов контейнерами Pod. Можно выбрать тип носителя, который должен поддерживать этот том, и указать общий объем хранилища, требующийся тому. Чтобы задать общий объем хранилища, нужно выбрать единицу измерения (байт (B), кибибайт (Ki), мебибайт (Mi), гибибайт (Gi)) и указать числовое значение. По умолчанию тома хранятся на любом носителе (диск, SSD, сетевое хранилище), рекомендуется выбрать medium, чтобы смонтировать файловую систему с поддержкой RAM;
  • PersistentVolumeClaim ‒ указать имя PVC и выбрать, устанавливать ли режим только для чтения для контейнеров пода;
  • Secret ‒ следует использовать для передачи конфиденциальной информации в Pod. Всегда монтируется в контейнеры Pod в режиме ReadOnly;
  • HostPath ‒ монтирует файл или каталог из файловой системы узла хоста в Pod. Указать путь к каталогу на хосте и тип для HostPath.

В зависимости от выбранного типа тома будут предложены разные параметры для настройки Volume:

  • ConfigMap (рисунок 296);

Рисунок 296 ‒ Параметры ConfigMap

  • DownwardAPI (рисунок 297);

Рисунок 297 ‒ Параметры DownwardAPI

  • EmptyDir (рисунок 298);

Рисунок 298 ‒ Параметры EmptyDir

  • PersistentVolumeClaim (рисунок 299);

Рисунок 299 ‒ Параметры PersistentVolumeClaim

  • Secret (рисунок 300);

Рисунок 300 ‒ Параметры Secret

  • HostPath (рисунок 301).

Рисунок 301 ‒ Параметры HostPath

Просмотр Pod

Страница просмотра пода представляет собой страницу с вкладками. Под заголовком с названием пода расположены дата и время создания пода, статус, состояние, сведения о родительском объекте (рисунок 302).

Рисунок 302 ‒ Просмотр пода

Для статуса пода дополнительно отображается цветовая индикация:

  • зеленая ‒ статус узла Running или Completed;
  • желтая ‒ статус Pending;
  • красная ‒ статус Terminating, CrashLoopBackOff или Failed;
  • серая ‒ статус Unknown.

На странице доступны вкладки:

  • Pod;
  • Контейнеры (имеет индикацию количества);
  • Volumes (имеет индикацию количества);
  • Безопасность;
  • Лейблы и аннотации (содержит список лейблов и аннотаций);
  • События (имеет индикацию количества);
  • Манифест.

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

Терминал Pod

Для запуска терминала в контейнере должен присутствовать shell.

Примечание ‒ Bash не поддерживается.

Следует обратить внимание, что корректная работа терминала гарантируется только в браузере Google Chrome.

Логи Pod

В окне "Просмотр логов контейнера" доступны настройки вывода логов (рисунок 303):

Рисунок 303 ‒ Просмотр логов контейнера

  • выбрать контейнер пода;
  • выключить/отключить:
  • автообновление;
  • отображение временной метки;
  • отображение предыдущего лога;
  • задать количество записей логов для вывода в окне просмотра (по умолчанию выводится 100 записей логов);
  • задать диапазон времени, по которому необходимо просмотреть логи, одним из способов:
  • выбрать начальную дату и время. Логи будут выведены, начиная с указанной даты;
  • указать диапазон в секундах. Логи будут выведены за прошедшие указанные секунды;
  • скачать log-файл. Скачивание происходит в файл с расширением .log, название которого предзаполнено и совпадает с наименованием контейнера;
  • выполнить поиск по тексту логов. Ввести в поле "Поиск по тексту" данные для поиска. Начиная с первого символа, выполняется поиск по тексту;
  • сбросить настройки отображения по умолчанию.

Вкладка "Pod" содержит сведения о:

  • состоянии, статусе и подчинении пода;
  • спецификации пода;
  • узле, на котором расположен под. Пользователи, имеющие доступ к просмотру узла, могут перейти на страницу узла, нажав на его имя.

Блок "Метрики мониторинга" отображает данные "CPU Usage" и "Memory Usage" пода за прошедший час (рисунок 304).

Рисунок 304 ‒ Блок "Метрики мониторинга"

Вкладка "Контейнеры"

Вкладка "Контейнеры" содержит список контейнеров и Init-контейнеров пода (рисунок 305). Нажатие на имя контейнера в списке раскрывает блок с данными по контейнеру.

Рисунок 305 ‒ Вкладка "Контейнеры"

Вкладка "Volumes"

Вкладка "Volumes" (рисунок 306) содержит список томов (Volumes) пода, смонтированных в контейнеры. Нажатие на строку тома в списке открывает окно со сведениями тома.

Рисунок 306 ‒ Вкладка "Volumes"

Вкладка "События"

Вкладка "События" содержит events пода (рисунок 307):

  • индикатор типа события;
  • дата и время;
  • источник события;
  • текст сообщения события.

Рисунок 307 ‒ Вкладка "События"

Вкладка "Безопасность"

Вкладка "Безопасность" содержит (рисунок 308):

  • результаты сканирования образов на уязвимости по объектам, содержащимся в этом replicaset (отображается, только если в кластере установлен "Модуль сканирования образов контейнеров");
  • результаты анализа на соответствие политикам безопасности объектов, содержащихся в этом репликасете (отображается, только если в кластере установлен "Модуль анализа конфигураций приложений").

Рисунок 308 ‒ Вкладка "Безопасность"

Вкладка "Манифест"

Вкладка содержит манифест "Pod", в который можно внести изменения, если Pod подчинен любому другому объекту Комплекса.

В случае если Pod был создан отдельно стоящим, можно изменить в манифесте только следующие поля:

  • spec.containers[*].image;
  • spec.initContainers[*].image;
  • spec.activeDeadlineSeconds;
  • spec.tolerations;
  • spec.terminationGracePeriodSeconds.

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

Изменение Pod

Для изменения существующих отдельно стоящих подов при необходимости редактирования рекомендуется удалить Pod в старой конфигурации и создать новый. Следует использовать ресурсы kubernetes (Deployments, StatefulSets, DaemonSets), управляющие перезапуском подов самостоятельно.

Чтобы удалить под, нужно на странице "Pods" в строке пода или на странице просмотра пода нажать Удалить. При удалении можно выбрать:

  • Удалить ‒ выполняется корректное завершение и удаление пода. Если поды зависли в состоянии Terminating, обычное удаление не сработает.
  • Удалить принудительно ‒ чтобы удалить под в состоянии Terminating. Поды, работающие на недоступном узле, переходят в состояние Terminating после тайм-аута. Также это может произойти, если под удаляется на недоступном узле.

Рисунок 309 ‒ Удаление пода

StatefulSets

StatefulSet ‒ это объект, который обеспечивает развертывание и управление набором подов, работающих в состоянии, то есть имеющих уникальные идентификаторы и сохраняющих свои данные при перезапуске. StatefulSet также гарантирует уникальность имен и IP-адресов для каждого пода, что облегчает работу с базами данных и другими приложениями, которые зависят от уникальных идентификаторов.

Создание StatefulSet

Для создания StatefulSet нужно нажать на кнопку + Создать StatefulSet. Затем в открывшемся окне в блоке "Описание" задать имя StatefulSet. При необходимости можно определить лейблы и определить совпадающие лейблы подов в блоке "Селектор подов".

Далее необходимо задать спецификацию StatefulSet:

  • количество реплик;
  • количество партиций;
  • минимальное время готовности в секундах (minReadySeconds);
  • revisionHistoryLimit ‒ показатель, который ограничивает количество старых хранящихся реплик (по умолчанию выбрано 10);
  • политика управления подами (podManagementPolicy):
  • OrderedReady (выбрано по умолчанию);
  • Parallel;
  • serviceName;
  • политика хранения PersistentVolumeClaim, в том числе:
  • whenDeleted:
    • Retain (выбрано по умолчанию);
    • Delete;
  • whenScaled:
    • Retain (выбрано по умолчанию);
    • Delete.

Далее следует определить шаблоны PersistentVolumeClaim. Для выбора нового шаблона нужно нажать +.

В открывшемся окне необходимо задать имя шаблона (рисунок 310), определить "Access Modes" (по умолчанию выбрано ReadWriteOnce), задать "Storage Class Name", размер и нажать Сохранить.

В РОСА Кубис есть четыре режима доступа "Access Modes" к PersistentVolumeClaim:

  • ReadWriteOnce (RWO) ‒ разрешает чтение и запись, но только к одному узлу (подключение к одному узлу);
  • ReadOnlyMany (ROX) ‒ разрешает только чтение, но может быть использовано множеством узлов (подключение к нескольким узлам);
  • ReadWriteMany (RWX) ‒ разрешает чтение и запись, а также может быть использовано множеством узлов одновременно (подключение к нескольким узлам);
  • ReadWriteOncePod (RWOP) ‒ разрешает чтение и запись, но только к одному поду узла.

Примеры "Storage Class Name":

  • standard — обычный класс хранилища с общими параметрами;
  • fast — класс хранилища с более быстрыми параметрами, например SSD;
  • slow — класс хранилища с более медленными параметрами, например HDD.

Размер — это объем хранилища, который запрашивается для PVC. Чтобы задать размер, нужно:

  • выбрать единицу измерения стандартную для Комплекса: байт (B), кибибайт (Ki), мебибайт (Mi), гибибайт (Gi);
  • указать значение запрашиваемого объема хранилища.

Рисунок 310 ‒ Добавление шаблона PersistentVolumeClaim

Затем нужно определить init-контейнеры и/или контейнеры, шаблон пода. При необходимости можно назначить Volumes. Настройки разделов описаны в п. Создание Pod.

Редактирование StatefulSet

Для редактирования доступны настройки (рисунок 311):

Рисунок 311 ‒ Редактирование StatefulSet

  • Спецификация StatefulSet, в том числе:
    • количество реплик;
    • количество партиций;
    • минимальное время готовности в секундах (minReadySeconds) ‒ минимальное время в секундах, в течение которого созданный POD должен стать доступным, без сбоя любого из его контейнеров. По умолчанию 0(под будет считаться доступным, как только он будет готов);
  • Политика хранения PersistentVolumeClaim, в том числе:
    • whenDeleted;
    • whenScaled;
  • Шаблон пода;
  • Контейнеры инициализации (Init-контейнеры);
  • Контейнеры;
  • Volumes.

Для удаления требуется нажать Удалить в строке с названием "Statefulset".

Также редактировать StatefulSet можно с помощью YAML-манифеста, для чего нужно перейти на вкладку "Манифест". После изменения манифеста необходимо выполнить проверку. Результат проверки будет доступен в правой части экрана. Можно раскрыть блок результата проверки, чтобы увидеть полный манифест. Если валидация формата манифеста StatefulSet не пройдена, выполнить проверку манифеста будет невозможным.

Далее необходимо сохранить изменения, внесенные в манифест. Несохраненные данные не будут применены.

Просмотр StatefulSet

Страница просмотра StatefulSet представляет собой страницу с вкладками. Под заголовком отображаются дата и время создания, статус, состояние.

На странице доступны вкладки:

  • StatefulSet;
  • Pods (имеет индикацию количества, содержит список подов, принадлежащих StatefulSet). По нажатию на имя пода можно перейти на страницу просмотра пода;
  • Шаблон пода (в т.ч. "Контейнеры", "Init Контейнеры", "Volumes");
  • Шаблоны PVC (имеет индикацию количества);
  • Безопасность;
  • Лейблы и аннотации (содержит список лейблов и аннотаций StatefulSet);
  • События (имеет индикацию количества);
  • Манифест.

Вкладка "StatefulSet"

Вкладка "StatefulSet" содержит сведения о StatefulSet. В блоке "Спецификация StatefulSet" доступны сведения:

  • Partition;
  • minReadySeconds;
  • revisionHistoryLimit;
  • podManagementPolicy;
  • serviceName.

Политика хранения "PersistentVolumeClaim":

  • whenDeleted;
  • whenScaled.

Блок для скейлинга StatefulSet содержит параметр количества реплик.

Блок "Метрики мониторинга" отображает данные "CPU Usage" и "Memory Usage" всех объектов StatefulSet суммарно за прошедший час.

Блок "Селектор подов" содержит сведения, заполненные на этапе создания StatefulSet.

Вкладка "Pods"

Вкладка "Pods" содержит список подов, подчиненных StatefulSet и сведения о дате создания, статусе (цветовая индикация), лейблах пода (рисунок 312). Чтобы просмотреть лейблы подов, нужно добавить колонку "Лейблы" для отображения на экране. Нажатие на строку пода открывает страницу просмотра пода.

Рисунок 312 ‒ Вкладка "Pods"

Вкладка "Шаблон пода"

Вкладка "Шаблон пода" содержит сведения о шаблоне пода, контейнерах, Init-контейнерах и volumes StatefulSet (рисунок 313).

Рисунок 313 ‒ Вкладка "Шаблон пода"

Вкладка "Безопасность"

Вкладка "Безопасность" содержит (рисунок 314):

  • результаты сканирования образов на уязвимости по объектам, содержащимся в этом StatefulSet (отображается, только если в кластере установлен "Модуль сканирования образов контейнеров");
  • результаты анализа на соответствие политикам безопасности объектов, содержащихся в этом StatefulSet (отображается, только если в кластере установлен "Модуль анализа конфигураций приложений").

Рисунок 314 ‒ Вкладка "Безопасность"

Вкладка "События"

Вкладка "События" содержит события StatefulSet со сведениями (рисунок 315):

  • индикатор типа события;
  • дата и время;
  • источник события;
  • текст сообщения события.

Рисунок 315 ‒ Вкладка "События"

Вкладка "Манифест"

На вкладке "Манифест" страницы просмотра и редактирования, ранее созданного StatefulSet можно внести изменения в YAML-манифест (рисунок 316).

Рисунок 316 ‒ Вкладка "Манифест"

DaemonSets

DaemonSet ‒ это объект, который управляет набором подов на каждом узле кластера. В отличие от ReplicaSet или Deployment он не управляет количеством реплик, а обеспечивает наличие конкретного контейнера на каждом узле. Это позволяет запускать службы на каждом узле, на котором развернуто приложение РОСА Кубис, и обеспечивать доступность служб для других приложений в кластере. В частности, DaemonSet может использоваться для управления запуском Daemon, таких как мониторинг или логирование, на каждом узле кластера.

Создание DaemonSet

Для создания DaemonSet нужно нажать на кнопку + Создать DaemonSet.

В открывшемся окне в блоке "Описание" необходимо задать имя DaemonSet.

При необходимости можно определить лейблы и определить совпадающие лейблы подов в блоке "Селектор подов".

Далее следует задать спецификацию DaemonSet:

  • минимальное время готовности в секундах (minReadySeconds) ‒ минимальное время в секундах, в течение которого созданный POD должен стать доступным, без сбоя любого из его контейнеров. По умолчанию 0 (под будет считаться доступным, как только он будет готов);
  • revisionHistoryLimit ‒ показатель, который ограничивает количество старых хранящихся ReplicaSets (по умолчанию выбрано 10);
  • максимальное количество недоступных;
  • максимальное количество дополнительных.

Затем нужно определить init-контейнеры и/или контейнеры, шаблон пода. При необходимости можно назначить Volumes. Настройки разделов описаны в п. Создание Pod.

Редактирование DaemonSet

Для редактирования доступны настройки (рисунок 317):

Рисунок 317 ‒ Редактирование DaemonSet

  • "Спецификация DaemonSet", в том числе:
  • revisionHistoryLimit;
  • минимальное время готовности в секундах (minReadySeconds);
  • максимальное значение недоступных и дополнительных реплик.
  • Шаблон пода;
  • Контейнеры инициализации (Init-контейнеры);
  • Контейнеры;
  • Volumes.

Для удаления нужно нажать в строке с названием Daemonset.

Также редактировать DaemonSet можно с помощью YAML-манифеста, перейдя на вкладку "Манифест". После изменения манифеста необходимо выполнить проверку. Результат проверки будет доступен в правой части экрана. Можно раскрыть блок результата проверки, чтобы увидеть полный манифест. Если валидация формата манифеста DaemonSet не пройдена, выполнить проверку манифеста не будет возможным.

Далее следует сохранить изменения, внесенные в манифест. Несохраненные данные не будут применены.

Просмотр DaemonSet

Страница просмотра представляет собой страницу с вкладками. Под заголовком отображаются дата и время создания, статус, состояние.

На странице доступны вкладки:

  • DaemonSet;
  • Pods (имеет индикацию количества);
  • Шаблон пода (в т.ч. "Контейнеры", "Init-Контейнеры", "Volumes");
  • Безопасность;
  • Лейблы и аннотации (содержит список лейблов и аннотаций DaemonSet);
  • События (имеет индикацию количества);
  • Манифест.

Вкладка "DaemonSet"

Вкладка "DaemonSet" содержит сведения о DaemonSet (рисунок 318). В блоке "Спецификация DaemonSet" доступны сведения:

Рисунок 318 ‒ Вкладка "DaemonSet"

  • minReadySeconds;
  • revisionHistoryLimit;
  • Максимальное недоступных (подов);
  • Максимальное дополнительных (подов).

Блок "Метрики мониторинга" отображает данные "CPU Usage" и "Memory Usage" всех объектов DaemonSet суммарно за прошедший час.

Блок "Селектор подов" содержит совпадающие лейблы подов.

Вкладка "Pods"

Вкладка "Pods" содержит список подов, подчиненных DaemonSet и сведения о дате создания, о статусе (цветовая индикация), лейблах пода (рисунок 319). Чтобы просмотреть лейблы подов, нужно добавить колонку "Лейблы" для отображения на экране. Нажатие на строку пода открывает страницу просмотра пода.

Рисунок 319 ‒ Вкладка "Pods"

Вкладка "Шаблон пода"

Вкладка "Шаблон пода" содержит сведения о шаблоне пода, контейнерах, Init-контейнерах и volumes DaemonSet (рисунок 320).

Рисунок 320 ‒ Вкладка "Шаблон пода"

Вкладка "Безопасность"

Вкладка "Безопасность" содержит (рисунок 321):

  • результаты сканирования образов на уязвимости по объектам, содержащимся в этом DaemonSet (отображается, только если в кластере установлен "Модуль сканирования образов контейнеров");
  • результаты анализа на соответствие политикам безопасности объектов, содержащихся в этом DaemonSet (отображается, только если в кластере установлен "Модуль анализа конфигураций приложений").

Рисунок 321 ‒ Вкладка "Безопасность"

Вкладка "События"

Вкладка "События" содержит events DaemonSet и его объектов со сведениями (рисунок 322):

  • индикатор типа события;
  • дата и время;
  • источник события;
  • текст сообщения события.

Рисунок 322 ‒ Вкладка "События"

Вкладка "Манифест"

На вкладке "Манифест" страницы просмотра и редактирования, ранее созданного DaemonSet можно внести изменения в YAML-манифест (рисунок 323).

Рисунок 323 ‒ Вкладка "Манифест"

CronJobs

Cronjob ‒ это объект, который позволяет запускать периодические задачи внутри кластера Комплекса. Как правило, cronjob выполняется в формате cron-расписания, в котором задается периодичность выполнения задачи (например, каждый день в 5 утра) и команда, которую необходимо выполнить.

На вкладке "CronJobs" доступно создание, удаление и просмотр периодических задач.

Создание CronJob

Для создания периодической задачи (CronJob) нужно нажать на кнопку + Добавить CronJob.

Далее следует заполнить поля:

  • Описание;
  • Спецификацию CronJob;
  • Шаблон задачи (Template Job);
  • Сведения о контейнере.

Затем необходимо нажать кнопку Сохранить.

Для удаления требуется нажать Удалить в строке с названием задачи. При удалении есть выбор:

  • Удалить полностью;
  • Удалить с пересозданием.

При выборе "Удалить с пересозданием" CronJob будет удалена, на экран будет выведено окно создания CronJob с предзаполненными данными из удаленной CronJob.

Просмотр CronJob

На странице доступны вкладки (рисунок 324):

Рисунок 324 ‒ Просмотр CronJob

  • CronJob;
  • Pods (имеет индикацию количества);
  • Jobs (имеет индикацию количества);
  • Шаблон Job (включает в себя шаблон пода);
  • Лейблы и аннотации (содержит список лейблов и аннотаций);
  • События (имеет индикацию количества);
  • Безопасность;
  • Манифест.

Вкладка "CronJob" содержит сведения о CronJob. В блоке "Спецификация CronJob" доступны сведения:

  • Расписание;
  • concurrencyPolicy;
  • startingDeadlineSeconds;
  • successfulJobsHistoryLimit;
  • failedJobsHistoryLimit;
  • Кнопка-переключатель Приостановлено/Не приостановлено.

Блок "Селектор подов" содержит совпадающие лейблы подов.

Блок "Метрики мониторинга" отображает данные "CPU Usage" и "Memory Usage" CronJob за прошедший час.

Вкладка "Pods"

Вкладка "Pods" cодержит список подов, подчиненных CronJob, и сведения о дате создания, статусе (цветовая индикация), лейблах пода (рисунок 325). Чтобы просмотреть лейблы подов, добавить колонку "Лейблы" для отображения на экране. Нажатие на строку пода открывает страницу просмотра пода.

Рисунок 325 ‒ Вкладка "Pods"

Вкладка "Jobs"

Вкладка "Jobs" содержит список Jobs, входящих в CronJobs, и сведения (рисунок 326):

  • когда создан Job;
  • статус (цветовая индикация);
  • сведения образа Job.

Рисунок 326 ‒ Вкладка "Jobs"

Вкладка "Шаблон пода"

Вкладка "Шаблон пода" содержит сведения о шаблоне пода, контейнерах, Init-контейнерах и volumes CronJob (рисунок 327).

Рисунок 327 ‒ Вкладка "Шаблон пода"

Вкладка "События"

Вкладка "События" содержит события CronJob со сведениями (рисунок 328):

  • индикатор типа события;
  • дата и время;
  • источник события;
  • текст сообщения события.

Рисунок 328 ‒ Вкладка "События"

Вкладка "Безопасность"

Вкладка "Безопасность" содержит (рисунок 329):

  • результаты сканирования образов на уязвимости по объектам, содержащимся в этом объекте CronJob (отображается, только если в кластере установлен "Модуль сканирования образов контейнеров");
  • результаты анализа на соответствие политикам безопасности объектов, содержащихся в этом объекте CronJob (отображается, только если в кластере установлен "Модуль анализа конфигураций приложений").

Рисунок 329 ‒ Вкладка "Безопасность"

Вкладка "Манифест"

Вкладка "Манифест" содержит манифест CronJob, который можно посмотреть и скопировать (рисунок 330).

Рисунок 330 ‒ Вкладка "Манифест"

Jobs

Job ‒ специальный объект, который используется для управления выполнением параллельных задач или задач, которые должны выполняться только один раз. Job позволяет запускать и контролировать задачи, а также осуществлять их повторное выполнение в случае ошибок или сбоев.

На вкладке "Jobs" доступно создание, удаление и просмотр задач.

Создание Job

Для создания разовой задачи (Job) нужно нажать на кнопку + Добавить Job и заполнить поля:

  • Описание;
  • Шаблон задачи (Template Job);
  • Сведения о контейнере.

Затем следует нажать кнопку Сохранить.

Для удаления требуется нажать Удалить в строке с названием задачи.

Просмотр Job

Страница просмотра Job представляет собой страницу с вкладками (рисунок 331). Под названием Job отображаются дата и время создания Job, статус, conditions, lastScheduleTime и lastSuccessfulTime.

На странице доступны вкладки:

  • Job;
  • Pods (имеет индикацию количества);
  • Шаблон пода;
  • Лейблы и аннотации (cодержит список лейблов и аннотаций);
  • События (имеет индикацию количества);
  • Безопасность.

Рисунок 331 ‒ Просмотр Job

Вкладка "Job"

Вкладка "Jobs" содержит сведения о Job.

В блоке "Спецификация Job" доступны сведения:

  • completions;
  • completionMode;
  • ttlSecondsAfterFinished;
  • parallelism;
  • backoffLimit;
  • activeDeadlineSeconds.

Блок "Селектор подов" содержит совпадающие лейблы подов.

Блок "Метрики мониторинга" отображает данные "CPU Usage" и "Memory Usage" Job за прошедший час.

Вкладка "Pods"

Вкладка "Pods" содержит список подов, подчиненных Job, и сведения о дате создания, статусе (цветовая индикация), лейблах пода (рисунок 332). Чтобы просмотреть лейблы подов, нужно добавить колонку "Лейблы" для отображения на экране. Нажатие на строку пода открывает страницу просмотра пода.

Рисунок 332 ‒ Вкладка "Pods"

Вкладка "Шаблон пода"

Вкладка "Шаблон пода" содержит сведения о шаблоне пода, контейнерах, Init-контейнерах и volumes Job (рисунок 333).

Рисунок 333 ‒ Вкладка "Шаблон пода"

Вкладка "События"

Вкладка "События" содержит события Job и его объектов со сведениями (рисунок 334):

  • индикатор типа события;
  • дата и время;
  • источник события;
  • текст сообщения события.

Рисунок 334 ‒ Вкладка "События"

Вкладка "Безопасность"

Вкладка "Безопасность" содержит (рисунок 335):

  • результаты сканирования образов на уязвимости по объектам, содержащимся в этом объекте Job (отображается, только если в кластере установлен "Модуль сканирования образов контейнеров");
  • результаты анализа на соответствие политикам безопасности объектов, содержащихся в этом объекте Job (отображается, только если в кластере установлен "Модуль анализа конфигураций приложений").

Рисунок 335 ‒ Вкладка "Безопасность"

Вкладка "Манифест"

Вкладка "Манифест" содержит манифест Job, который можно посмотреть и скопировать (рисунок 336).

Рисунок 336 ‒ Вкладка "Манифест"