1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/apache-aurora

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
custom-executors.md 7.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 06:41 32c4132

Пользовательские исполнители

Если возникает необходимость использовать другой исполнитель Mesos, кроме Thermos, планировщик можно настроить для использования пользовательского исполнителя, указав флаг -custom_executor_config.

Флаг должен быть установлен на путь к действительному файлу конфигурации исполнителя.

Файл конфигурации должен представлять собой допустимый массив JSON и содержать как минимум одну конфигурацию исполнителя, включая поля имени, команды и ресурсов, и на него должен указывать флаг -custom_executor_config при запуске планировщика.

Массив элементов

Свойство Описание
executor (обязательно) Описание исполнителя.
task_prefix (обязательно) Префикс, присваиваемый задачам, запускаемым с этой конфигурацией исполнителя.
volume_mounts (необязательно) Тома, которые будут смонтированы в контейнере, выполняющем исполнитель.

Исполнитель

Свойство Описание
name (обязательно) Имя исполнителя.
command (обязательно) Как запустить исполнитель.
resources (обязательно) Накладные расходы для каждого экземпляра исполнителя.

Команда

Свойство Описание
value (обязательно) Команда для выполнения.
arguments (необязательно) Список аргументов для передачи команде.
uris (необязательно) Список ресурсов для загрузки в изолированную программную среду задачи.
shell (необязательно) Запустить исполнитель через оболочку.

Примечание о свойстве команды (из mesos.proto):

  1. Если «shell == true», команда будет запущена через оболочку (/bin/sh -c 'value'). Указанное значение будет рассматриваться как команда оболочки. Аргументы будут проигнорированы.
  2. Если «shell == false», команда будет запущена путём передачи аргументов исполняемому файлу. Указанное значение будет обрабатываться как имя файла исполняемого файла. Аргументы будут обрабатываться как аргументы исполняемого файла. Это похоже на то, как семейства POSIX exec запускают процессы (т. е. execlp(value, arguments(0), arguments(1), ...)).
uris (список)
  • Соответствует схеме Fetcher Mesos.
Свойство Описание
value (обязательно) Путь к ресурсу, необходимому в изолированной программной среде.
executable (необязательно) Изменить ресурс на исполняемый с помощью chmod.
extract (необязательно) Извлечь файлы из упакованных или сжатых архивов в изолированную программную среду.
cache (необязательно) Использовать механизм кэширования, предоставляемый Mesos для ресурсов.

Ресурсы (список)

Свойство Описание
name (обязательно) Название ресурса: cpus или mem.
type (обязательно) Тип ресурса. Всегда должен быть SCALAR.
scalar (обязательно) Значение в float для cpus или int для mem (в МБ).

Volume_mounts (список)

Свойство Описание
host_path (обязательно) Хост-путь для монтирования внутри контейнера.
container_path (обязательно) Путь внутри контейнера, где будет смонтирован host_path.
mode (обязательно) Режим, в котором следует монтировать том, чтение-запись (RW) или только чтение (RO).

Пример конфигурации выглядит следующим образом:

[
    {
      "executor": {
        "name": "myExecutor",
        "command": {
          "value": "myExecutor.a",
          "shell": "false",
          "arguments": [
            "localhost:2181",
            "-verbose",
            "-config myConfiguration.config"
          ],
          "uris": [
            {
              "value": "/dist/myExecutor.a",
              "executable": true,
              "extract": false,
              "cache": true
            },
            {
              "value": "/home/user/myConfiguration.config",
              "executable": false
``` Следует отметить, что если вы не используете Thermos или исполнитель на основе Thermos, ссылки в веб-интерфейсе планировщика для задач не будут работать (по крайней мере, пока). Некоторую информацию о запущенных задачах всё ещё можно получить через веб-интерфейс Mesos или через клиент Aurora.

### Использование пользовательского исполнителя

Чтобы запускать задачи с помощью пользовательского исполнителя, необходимо добавить объект [ExecutorConfig](../reference/configuration.md#executorconfig-objects) к объекту Job или Service. Параметр `name` объекта ExecutorConfig должен соответствовать имени исполнителя, определённому в объекте JSON, предоставленном планировщику во время запуска.

Например, если мы хотим запускать задачи, используя `myExecutor` (определённый выше), мы можем сделать это следующим образом:

jobs = [Service( task = task, cluster = 'devcluster', role = 'www-data', environment = 'prod', name = 'hello', executor_config = ExecutorConfig(name='myExecutor'))]


Это создаст служебное задание, которое будет запускать задачи с использованием myExecutor вместо Thermos.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/apache-aurora.git
git@api.gitlife.ru:oschina-mirror/apache-aurora.git
oschina-mirror
apache-aurora
apache-aurora
master