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

OSCHINA-MIRROR/cnperl-dinp-agent

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Агент

Этот модуль развёртывается на всех узлах в пуле ресурсов и используется главным образом для сбора данных и составления отчётов.

Данные, которые собираются, делятся на две части:

  • Остаточная память машины. Диспетчерский модуль может выполнять диспетчеризацию только после получения этой информации.
  • Состояние контейнеров. Это интерфейс чтения Docker Daemon, который перечисляет все контейнеры.

Что касается контейнеров, то на данный момент получен только список контейнеров локальной машины, а также их PublicPort. Эта информация передаётся серверу, который записывает информацию о маршрутизации в таблицу маршрутизации Redis.

Вопрос 1: Как узнать, какому приложению принадлежит контейнер?

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

В настоящее время подход заключается в том, чтобы включать имя приложения в ENV. Имя приложения включается при создании контейнера и впоследствии получается через inspect с помощью команды ENV["APP_NAME"].

Примечание:

  • Агент передаёт IP-адрес локальной машины серверу. Сервер использует этот адрес для построения таблицы маршрутизации. Как агент получает IP-адрес? Что делать, если у машины несколько IP-адресов? В настоящее время используется только внутренний IP-адрес. Затем отфильтровываются петлевые IP-адреса. Используются только сетевые карты с именем eth в качестве префикса. Докерные виртуальные сетевые карты отфильтровываются. Если пользователь настроил localIp, используется этот адрес.
  • Агент — это процесс переднего плана. При реальном развёртывании можно использовать такие инструменты управления, как god или supervisor.

Описание параметров конфигурации

  • debug: true/false влияет только на вывод журнала.
  • localIp: IP-адрес локального компьютера. Сервер будет использовать этот IP-адрес для связи с демоном Docker.
  • servers: адрес сервера.
  • interval: интервал сердцебиения, в секундах.
  • timeout: время ожидания соединения с сервером, в миллисекундах.
  • docker: адрес интерфейса Docker Daemon. Рекомендуется, чтобы Docker Daemon прослушивал TCP-интерфейс 127.0.0.1. Также можно использовать сокет Unix, но необходимо учитывать права доступа к файлам.

Установка

mkdir -p $GOPATH/src/github.com/dinp
cd $GOPATH/src/github.com/dinp; git clone https://github.com/dinp/agent.git
cd agent
go get ./...

# check cfg.json, depend docker daemon and server
./control start

Комментарии ( 0 )

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

Введение

Агент DINP, развёрнутый на всех вычислительных узлах, собирает информацию о состоянии работы каждого узла и список контейнеров. Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/cnperl-dinp-agent.git
git@api.gitlife.ru:oschina-mirror/cnperl-dinp-agent.git
oschina-mirror
cnperl-dinp-agent
cnperl-dinp-agent
master