Сервер
Это самый важный модуль всей системы, который выполняет следующие функции:
Открывает порт RPC для получения информации о сердцебиении от агента, собирает информацию о нагрузке всех вычислительных узлов и список контейнеров и сохраняет её в памяти под названием «реальное состояние» (real state).
Открывает HTTP-порт для отладки и предоставляет доступ к информации из памяти.
Соединяется с базой данных Dashboard и регулярно получает целевое состояние текущего приложения, которое называется «желаемое состояние» (desired state).
Сравнивает реальное и желаемое состояния. Если контейнер не отвечает или требуется расширение, можно определить различия и создать новый контейнер или удалить лишние контейнеры.
Анализирует список контейнеров, отправленный агентом, и организует информацию о маршрутизации, которая записывается в Redis.
Через переменные среды записывает в контейнер адрес соединения настроенного сервера Scribe, чтобы приложение в контейнере могло отправлять логи на этот сервер Scribe.
Проблемы
Если сервер выходит из строя, что делать?
Агент настраивает два адреса сервера, обычно запуская только один сервер. Если сервер на машине выходит из строя, можно запустить другой сервер, и агент автоматически переподключится. Здесь можно реализовать логику автоматического выбора главного сервера, но это слишком сложно, поэтому она не реализована.
Что делать, если Redis, где хранится информация о маршрутах, выходит из строя?
После каждого получения маршрута из Redis маршрутизатор кэширует его в локальной памяти. Если Redis выйдет из строя, это не вызовет серьёзных проблем, просто маршрутизатор не сможет отслеживать изменения в контейнерах на стороне сервера.
Фактически, даже если большинство компонентов dinp выйдут из строя, пока маршрутизатор и контейнеры работают, существующие сервисы не будут затронуты, просто их нельзя будет масштабировать или развернуть новые версии.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )