Создание Deployment

Создание рабочей нагрузки Deployment происходит в несколько этапов:

Specify Basic Info

  1. На консоли управления Computing → Cloud Container Engine нажмите кнопку + Create Workload.

    ../_images/s__create-deployment.jpeg

    Примечание

    Второй вариант пути создания: Workloads → Deployments, затем нажмите кнопку + Create Deployments.

  2. Выберите Deployments.

  3. Заполните поля раздела Specify Basic Info:

    1. Workload Name — введите имя рабочей нагрузки.

      Требования к имени рабочей нагрузки:

      • длина — от 4 до 63 символов;

      • может содержать только строчные буквы, цифры или дефисы;

      • первый символ — буква, последний — буква или цифра.

    2. Cluster Name — выберите кластер.

    3. Namespace — из раскрывающегося списка выберите пространство имен. Если пространство не определено, будет по умолчанию default.

      Примечание

      Инструкцию по созданию нового пространства имен можно посмотреть в статье Создание кластера.

    4. Instances — с помощью горизонтального скроллинга определите количество подов в рабочей нагрузке.

    5. Time Zone Synchronization — при включенном переключателе контейнеры и узлы будут работать в одной временной зоне.

    6. Description — добавьте описание.

    ../_images/s__specify-basic-info.jpeg
  4. Нажмите кнопку Next: Add Container.

Add Container

  1. Нажмите кнопку Add Container.

  2. Загрузите образ контейнера. Для этого выберите один из источников загрузки.

    • Вкладка My Images — здесь отображаются ваши частные образы, загруженные через сервис Software Repository for Container (SWR). Для загрузки нового образа нажмите на ссылку Upload a container image и после создания образа нажмите на знак Значок Refresh (Refresh).

      ../_images/s__upload-container-image.jpeg
    • Вкладка Official Docker Hub Images — загрузка одного из официальных образов, размещенных в Docker Hub.

    • Вкладка Third-Party Images — загрузка образа из внешнего источника (образы из внешних хранилищ, кроме SWR and Docker Hub).

      1. Secret Authentication — выберите Yes, если нужно использовать объект secret; выберите No, если использовать secret не нужно.

      2. (опционально) Secret — выберите secret из списка или создайте новый (нажмите Create a Secret).

      3. Image Address — укажите адрес образа в формате IP-адрес:порт/путь/имя_образа:версия_образа.

      ../_images/s__third-party-images.jpeg
    • Вкладка Shared Images — загрузка разделяемого образа.

  3. Нажмите ОК.

  4. Настройте контейнер. Заполните следующие поля:

    • На вкладке Basic Information:

      1. Image Version — выберите версию образа.

      2. Container Name — укажите имя контейнера.

        Примечание

        Требования к имени рабочей нагрузки:

        • длина — от 4 до 63 символов;

        • может содержать только строчные буквы, цифры или дефисы;

        • первый символ — буква, последний — буква или цифра.

      3. Privileged Container — включенный переключатель наделяет контейнер расширенными правами.

      4. Privileged Resources → CPU → Request — количество ресурсов ядра, которые необходимы контейнеру.

      5. Privileged Resources → CPU → Limit — лимит расхода ресурсов ядра, который контейнер не может превышать.

      6. Privileged Resources → Memory → Request — объем памяти, который необходим контейнеру (в МиБ).

      7. Privileged Resources → Memory → Limit — при перерасходе указанного лимита памяти контейнер будет удален (в МиБ).

      8. Privileged Resources → GPU → Use — только для узлов, содержащих GPU, при активации чек-бокса, укажите процент GPU для контейнера.

      9. Privileged Resources → Ascend Quota → Use — при активации чек-бокса укажите максимальное количество процессоров Ascend, которое может быть использовано контейнером.

      ../_images/s__basic-information.jpeg
    • На вкладке Lifecycle:

      1. Start Command → Command — введите стартовую команду (команда запустится при включении рабочей нагрузки).

      2. Start Command → Muli-Args per Input Box — введите условия (каждое условие с новой строки).

      3. Start Command → Args — введите условия. Для добавления поля условий нажмите +Add. Для удаления поля нажмите значок Значок Корзина.

      4. Example — справа приведены примеры (Binary и Bash). Нажмите на знак Значок Копирование (Copy) для копирования примера.

      5. Post-Start → CLI → Command — введите пост-стартовую команду (отработает после успешного запуска рабочей нагрузки). Для добавления поля условий нажмите +Add. Для удаления поля нажмите значок Значок Корзина.

      6. Post-Start → HTTP request — введите URL (поле Path), номер порта (поле Port) и IP-адрес (поле Host Address).

      7. Example — справа приведены примеры (Binary, Bash и HTTP request). Нажмите на знак Значок Копирование (Copy) для копирования примера.

      8. Post-Start → CLI → Command — введите команду (отработает, чтобы удалить историю и временные файлы перед остановкой нагрузки). Для добавления поля условий нажмите +Add. Для удаления поля нажмите значок Значок Корзина.

      9. Post-Start → HTTP request — введите URL (поле Path), номер порта (поле Port) и IP-адрес (поле Host Address).

      10. Example — справа приведены примеры (Binary, Bash и HTTP request). Нажмите на знак Значок Копирование (Copy) для копирования примера.

      ../_images/s__lifecycle.jpeg
    • На вкладке Health Check:

      • блок Liveness Probe проверяет рабочее состояние контейнера, при необходимости перезапускает его;

      • блок Readiness Probe проверяет готовность контейнера к работе, при отрицательной проверке меняет статус контейнера на «недоступен».

      Заполните поля в зависимости от выбранной радиокнопки:

      1. HTTP Request:

        • поле Path — введите URL;

        • поле Port — введите номер порта;

        • поле Host Address — введите IP-адрес.

      2. TCP Port:

        • поле TCP Port — введите номер TCP-порта;

        • поле Initial Delay — укажите время (с) задержки между запуском контейнера и первой проверкой.

        • поле Timeout — укажите время (с), по истечении которого закончится проверка.

      3. CLI:

        • поле Command — введите команду;

        • поле Initial Delay — укажите время (с) задержки между запуском контейнера и первой проверкой;

        • поле Timeout — укажите время (с), по истечении которого закончится проверка.

      4. HTTP (при выборе HTTP Request):

        • поле Initial Delay — укажите время (с) задержки между запуском контейнера и первой проверкой;

        • поле Timeout — укажите время (с), по истечении которого закончится проверка.

      5. HTTPS (при выборе HTTP Request):

        • поле Initial Delay — укажите время (с) задержки между запуском контейнера и первой проверкой;

        • поле Timeout — укажите время (с), по истечении которого закончится проверка.

      ../_images/s__health-check-settings.jpeg
    • На вкладке Environment Variables:

      1. Нажмите кнопку + Add Environment Variable.

      2. Type — выберите из раскрывающегося списка вид переменной среды.

      3. Variable Name — укажите имя переменной среды.

        Требования к имени переменной:

        • длина — от 4 до 64 символов;

        • может содержать буквы, цифры, дефисы, точки или нижние подчеркивания;

        • первый символ — любой из допустимых знаков, кроме цифры.

      4. Variable Value/Reference — укажите переменное значение.

      5. (опционально) Operation — для удаления строки нажмите Delete.

      ../_images/s__environment-variables.jpeg
    • На вкладке Data Storage → Local Volume:

      Нажмите кнопку + Add Local Volume.

      ../_images/s__local__add-local-volume.jpeg

      Заполните поля в зависимости от выбранной радиокнопки и нажмите ОК:

      • HostPath — используется для хранения данных журнала нагрузок. История хранится в директории HostPath. Заполните поля:

        1. поле Host Path — укажите путь для контейнера к файлу;

        2. поле subPath — укажите путь к директории в диске;

        3. поле Container Path — укажите путь в контейнере;

        4. поле Permission — выберите уровень разрешенных действий с файлом;

        5. (опционально) Delete — удалите строку;

        6. (опционально) + Add Container Path — добавьте новую строку.

        ../_images/s__hostpath-fields.jpeg
      • EmptyDir — применяется для временного хранения данных, данных резервного копирования и общего управления контейнерами. При перемещении или удалении подов хранилище удаляется. Заполните поля:

        1. чек-бокс Memory — при активации чек-бокса EmptyDir скорость записи увеличится (данный режим применяется при небольшом объеме данных), если чек-бокс не активирован — невысокая скорость чтения и записи (при большом объеме данных);

        2. поле subPath — укажите путь к директории в диске;

        3. поле Container Path — укажите путь в контейнере;

        4. поле Permission — выберите уровень разрешенных действий с файлом;

        5. (опционально) Delete — удалите строку;

        6. (опционально) + Add Container Path — добавьте новую строку.

        ../_images/s__emptydir-fields.jpeg
      • ConfigMap — используется для обработки параметров настроек рабочей нагрузки. Является способом ввода схемы настроек в поды. Заполните поля:

        1. поле ConfigMap — выберите ConfigMap;

          Примечание

          Для создания новой схемы нажмите Create a configMap. После создания обновите поле — нажмите на знак Значок Refresh (Refresh). Инструкцию по созданию смотрите здесь.

        2. поле SubPath — укажите путь к директории в диске;

        3. поле Container Path — укажите путь в контейнере;

        4. поле Permission — по умолчанию только чтение;

        5. (опционально) Delete — удалите строку;

        6. (опционально) + Add Container Path — добавьте новую строку.

        ../_images/s__configmap-fields.jpeg
      • Secret — используется для передачи конфиденциальной информации (например, паролей) в поды. Заполните поля:

        1. поле Secret — выберите секрет из списка;

          Примечание

          Для создания нового секрета нажмите Create a secret. После создания обновите поле — нажмите на знак Значок Refresh (Refresh). Инструкцию по созданию смотрите здесь.

        2. поле SubPath — укажите путь к директории в диске;

        3. поле Container Path — укажите путь в контейнере;

        4. поле Permission — по умолчанию только чтение;

        5. (опционально) Delete — удалите строку.

        6. (опционально) + Add Container Path — добавьте новую строку.

        ../_images/s__secret-fields.jpeg
    • На вкладке Data Storage → Cloud Volume:

      Нажмите кнопку + Add Cloud Volume.

      ../_images/s__cloud-volume__add-cloud-volume.jpeg

      Заполните следующие поля и нажмите ОК:

      1. поле Cloud Storage Name — выберите диск из раскрывающегося списка;

        Примечание

        Если нужного диска нет, нажмите Create an EVS disk. После создания диска обновите список — нажмите на знак Значок Refresh (Refresh). При этом важно прикрепить EVS-диск только к одному контейнеру.

      2. поле Container Path — укажите путь в контейнере;

      3. поле Permission — выберите уровень разрешенных действий с файлом;

      4. (опционально) Delete — удалите строку;

      5. (опционально) + Add Container Path — добавьте новую строку.

      ../_images/s__add-volume__parameters.jpeg
    • На вкладке Security Context.

      Заполните поле User ID — укажите ID пользователя, которому разрешаете управлять контейнером.

      Примечание

      Если указано 0, то права управления контейнера будут за корневым пользователем.

    • На вкладке Log Policies.

      Нажмите кнопку + Add Log Policy.

      ../_images/s__add-log-policy.jpeg

      Заполните следующие поля и нажмите ОК:

      1. поле Storage Type — выберите тип хранилища журнала истории: путь хоста или контейнера;

      2. поле Host Path — укажите путь;

      3. поле Container Path — укажите путь к директории в контейнере;

      4. поле Extended Host Path — можно выбрать имя (PodName) или ID подов (PodUID) и/или имя контейнеров (PodUID/ContainerName или PodName/ContainerName), чтобы различить контейнер, к которому указывается путь.

      5. поле Collection Path — укажите путь к определенным логам;

        Примечание

        Если путь в данном поле не указан, то выбраны будут все файлы формата .log, .trace и .out. Воспользуйтесь знаком «звездочка» * для множественного выбора. Например, путь /tmp/test*.log показывает, что все файлы формата .log с префиксом test будут собираться из каталога tmp.

      6. поле Log Dumping — при выборе значения Enabled будет включен автоматический сброс истории, при достижении размера файла 50 МБ, при этом сохранится не более 20 файлов журнала логов; Disabled — используется Docker-режим сброса истории по умолчанию.

      7. поле Multi-line Log — после входа данные журнала сортируются в удобном для просмотра виде в соответствии с заданной пользователем политикой.

      8. поле Split Mode — выберите вкладку: время входа (Log Time) или регулярные выражения (Regular Pattern).

      9. (в зависимости от выбора выше) Поле Time wildcard (укажите время входа вида YYYY-MM-DD hh:mm:ss) или поле Regular expression (укажите регулярное выражение).

      10. (опционально) Нажмите + Add Container Path, чтобы добавить новый путь.

      ../_images/s__add-log-policy__parameters.jpeg
  5. Нажмите кнопку Next: Set Application Access.

Set Application Access

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

  1. Нажмите кнопку + Add Service.

  2. В зависимости от выбранного значения в поле Access Type (ClusterIP, NodePort, LoadBalancer (ELB) или LoadBalancer (DNAT)) заполните поля и нажмите ОК.

  3. Нажмите кнопку Next: Configure Advanced Settings.

Configure Advanced Settings

  1. Выберите вкладку: Rolling upgrade (постепенно заменяет поды новыми) или In-place upgrade (удаляет старые поды и создает новые).

  2. (только при выборе Rolling upgrade) В поле Maximum number of Unavailable Nodes укажите максимальное количество недоступных узлов.

    ../_images/s__upgrade-policy.jpeg
  3. В поле Graceful Time Window укажите время (в секундах) до удаления пода, когда появится предупреждающее сообщение.

  4. В поле Migration Policy Window активируйте (или деактивируйте) чек-бокс, который устанавливает время (в секундах), по истечении которого поды с неработающего узла перенаправляются на узел работающий.

  5. В полях Pod Label:

    1. Нажмите + Add Label для добавления новой метки.

    2. В поле Key — укажите метку.

      Требования к имени рабочей нагрузки:

      • длина — от 1 до 63 символов;

      • может содержать буквы, цифры, точки, дефисы или нижние подчеркивания;

      • первый и последний символ — буква или цифра.

    3. В поле Value — укажите значение метки.

    4. Нажмите Delete для удаления строки с меткой.

    Примечание

    Метки для подов можно указать только на данном этапе, во время создания, после чего они изменению не подлежат.

    ../_images/s__advanced-pod-settings.jpeg
  6. Выберите DNS-политику: ClusterFirst (DNS-настройка по умолчанию отменяет DNS-настройку клиента), None (под использует DNS-настройку клиента) или Default (под наследует DNS-настройку узла, на котором он развернут).

  7. В поле Nameserver нажмите + Add Nameserver, чтобы добавить диапазон IP-адресов, которые будут использоваться в качестве DNS-серверов для подов. Для удаления строки с Nameserver нажмите Delete.

  8. В поле DNS Search Domain нажмите + Add DNS Search Domain, чтобы добавить список доменных имен для поиска имени хоста. Для удаления строки с доменным именем нажмите Delete.

  9. В поле Timeout введите время (в секундах) ожидания отклика удаленного DNS-сервера, прежде чем перенаправлять запрос на другой DNS-сервер.

  10. Максимальное количество точек в доменном имени. Если доменное имя будет содержать количество точек равное или большее, чем в данном поле, то имя будет расцениваться как полное доменное имя (FQDN). Если точек в доменном имени меньше, чем в данном поле, то система сначала будет искать имя в списке доменных имен (поле DNS Search Domain).

  11. В блоке Custom Monitoring, чтобы определить, по каким показателям нужно получать отчет, заполните следующие поля:

    1. Поле Report Path — укажите путь (URL-адрес) для получения определяемых пользователем метрических данных.

    2. Поле Report Port — укажите порт.

    3. Поле Monitoring Metrics — укажите нужные параметры в квадратных скобках и в универсальных кавычках (quotation marks). Если параметров несколько, то их нужно перечислять через запятую, без пробелов (например, ["cpu_usage","mem_usage"]). Если поле оставить пустым, то будут выбираться все параметры.

    ../_images/s__custom-monitoring.jpeg
  12. Если вы хотите отслеживать состояние рабочей нагрузки Java, активируйте чек-бокс Java probe.

    Примечание

    Чтобы воспользоваться данной опцией, нужно оформить подписку на сервис Application Performance Management (нажмите на Subscribe now) и в настройке параметров APM, на странице Настройка дополнительных параметров, во время создания рабочей нагрузки введите имя группы мониторинга.

    ../_images/s__apm-settings.jpeg
  13. Нажмите кнопку Create.

Finish

После успешного создания Deployment появится следующее окно. Далее нажмите на одну из кнопок:

  1. Back to Deployment List, чтобы перейти к списку объектов Deployments.

  2. View Deployment Details, чтобы перейти к просмотру созданного объекта Deployment.

../_images/s__deployment-created-dialog.jpeg