Что такое Consul

Consul

приложение для обнаружения сервисов (service discovery) на основе DNS и проверки их доступности. Оно используется для обеспечения связи между компонентами микросервисной инфраструктуры, позволяя создавать отказоустойчивую и масштабируемую систему с возможностью балансировки нагрузки. Consul разработан компанией HashiCorp, которой также принадлежат другие известные продукты, например, Vagrant, Terraform, Atlas, Vault.

Приложение может быть установлено на серверы под управлением всех популярных систем: Linux, Windows, MacOS, BSD. Поддерживаются следующие способы установки:

  1. Копирование в систему бинарного файла.
  2. Сборка приложения из исходников.
  3. Установка в Kubernetes.
  4. В виде контейнера Docker.

Управление осуществляется через командную строку. Также для некоторых действий может быть активирован UI (User Interface).

Приложение работает на следующих портах:

Порт Протокол Описание
8600 TCP and UDP Сервер DNS
8500 TCP Consul UI + API
8301 TCP and UDP Порт LAN
8302 TCP and UDP Порт WAN
8300 TCP Сервис RPC
21000 — 21255 Диапазон портов для регистрации сервисов
8501 TCP Защищенный Consul UI + API. По умолчанию, не настроен и задается любой. Данный номер рекомендован в официальной документации.
8502 gRPC API. По умолчанию, не настроен и задается любой. Данный номер рекомендован в официальной документации.

По своей сути Consul — это база данных по типу ключ-значение. При обращении к нему мы получаем информацию о работоспособном приложении. Поэтому, среди аналогов, иногда выделяют etcd и ZooKeeper и, даже, Redis.

Также Consul может быть использован для реализации Service Mesh. Регистрация сервисов в последней производится с помощью функции Consul Connect. Помимо самих сервисов, регистрируются политики взаимодействия, например, мы можем указать, что сервис 1 может взаимодействовать с сервисом 2, но не может взаимодействовать с сервисом 3. А для регистрации своего приложения доступна HTTP API или конфигурационные файлы самого консула (при наличии поддержки со стороны приложения).

admin

Share
Published by
admin

Recent Posts

Настройка Mercurial по HTTPS

Иногда mercurial, при скачивании и комитах ругается на https. Особенно на самоподписанные сертификаты. Чтобы заработал…

4 недели ago

Компиляция libvirt в Ubuntu

Компиляция libvirt Подробнее

4 недели ago

Ошибка libvirt permission denied: решение

Если возникает ошибка libvirt destroy lxc permission denied , при попытке остановить контейнер: _x000D_# virsh…

4 недели ago

Настройка редиректа в NGINX

Файлы с примерами редиректа для nginx Подробнее

4 недели ago

Включение gzip в NGINX

Как включить gzip сжатие в Nginx ? Подробнее

4 недели ago

Удаление postinst-скрипта в Linux

Иногда возникает ситуация, когда криво настроенные пакеты не устанавливаются в системе. У меня это произошло…

4 недели ago