Пользовательские исполнители
Если возникает необходимость использовать другой исполнитель Mesos, кроме Thermos, планировщик можно настроить для использования пользовательского исполнителя, указав флаг -custom_executor_config
.
Флаг должен быть установлен на путь к действительному файлу конфигурации исполнителя.
Файл конфигурации должен представлять собой допустимый массив JSON и содержать как минимум одну конфигурацию исполнителя, включая поля имени, команды и ресурсов, и на него должен указывать флаг -custom_executor_config
при запуске планировщика.
Свойство | Описание |
---|---|
executor (обязательно) | Описание исполнителя. |
task_prefix (обязательно) | Префикс, присваиваемый задачам, запускаемым с этой конфигурацией исполнителя. |
volume_mounts (необязательно) | Тома, которые будут смонтированы в контейнере, выполняющем исполнитель. |
Свойство | Описание |
---|---|
name (обязательно) | Имя исполнителя. |
command (обязательно) | Как запустить исполнитель. |
resources (обязательно) | Накладные расходы для каждого экземпляра исполнителя. |
Свойство | Описание |
---|---|
value (обязательно) | Команда для выполнения. |
arguments (необязательно) | Список аргументов для передачи команде. |
uris (необязательно) | Список ресурсов для загрузки в изолированную программную среду задачи. |
shell (необязательно) | Запустить исполнитель через оболочку. |
Примечание о свойстве команды (из mesos.proto):
Свойство | Описание |
---|---|
value (обязательно) | Путь к ресурсу, необходимому в изолированной программной среде. |
executable (необязательно) | Изменить ресурс на исполняемый с помощью chmod. |
extract (необязательно) | Извлечь файлы из упакованных или сжатых архивов в изолированную программную среду. |
cache (необязательно) | Использовать механизм кэширования, предоставляемый Mesos для ресурсов. |
Свойство | Описание |
---|---|
name (обязательно) | Название ресурса: cpus или mem. |
type (обязательно) | Тип ресурса. Всегда должен быть SCALAR. |
scalar (обязательно) | Значение в float для cpus или int для mem (в МБ). |
Свойство | Описание |
---|---|
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 )