Установка Consul. Almalinux (8|9)

Consul — современная платформа для обнаружения сервисов, позволяющая регистрировать сервисы через DNS и HTTP-интерфейс. Он также предлагает функцию Service Mesh, которая обеспечивает безопасные соединения через TLS и обеспечивает авторизацию между службами. Кроме того, Consul также предоставляет шлюз API для управления доступом к сервисам и хранилище KV (ключ/значение) для хранения конфигурации сервиса.

В этой статье рассмотрим установку Consul Cluster с тремя серверами.


Протестировано на:

Almalinux: 8|9


Настройка системы

На первом этапе подготовим серверы AlmaLinux к установке Consul:

  • Настройка Firewalld для открытия портов
  • Настройте SELinux.

Настройка файрвола

Перед установкой пакетов откроем необходимые порты на своих серверах для работы Consul.

Выполните команду ниже, чтобы открыть порты 8300, 8301, 8302, 8400, 8500 и 8600

Теперь перезагрузите firewalld, используя команду ниже, чтобы изменения вступили в силу.

Наконец, проверьте правила firewalld, используя следующую команду. Убедитесь, что порты 8300, 8301, 8302, 8400, 8500, 8600 доступны на вашем брандмауэре.

Изменение политики SELinux.

После настройки firewalld изменим режим SELinux.

Выполните следующую команду, чтобы изменить режим SELinux на permessive.

Затем перезагрузите серверы, чтобы изменения вступили в силу.

Теперь, когда мы предварительно настроили все свои серверы, можем приступить к установке Consul.

Установка Consul

Consul— это сервисная сетевая платформа, поддерживающая различные операционные системы. Кроме того, Consul предоставляет репозиторий пакетов для дистрибутивов Linux, включая дистрибутивы на основе RHEL.

Перед установкой Consul предварительно установим несколько необходимых для это пакетов.

Теперь запустите команду DNF ниже, чтобы добавить репозиторий Consul на ваши серверы Alma Linux. Затем проверьте список доступных репозиториев на каждом сервере.

Затем установите Consul, выполнив следующую команду:

После завершения установки выполните следующую команду, чтобы проверить его версию.

Конфигурация Consul

После того, как установили Consul на все наши серверы, приступим к настройке кластера Consul. Для демонстрации будем использовать три сервера.

alma91192.168.56.10
alma92192.168.56.11
alma93192.168.56.12

Сначала остановите службу Consul на каждом сервере, выполнив команду ниже.

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

На всех ваших серверах консула откройте конфигурацию консула по умолчанию /etc/consul.d/consul.hcl, используя любой удобный текстовый редактор.

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

  • server: true означает, что узел будет действовать как консул -сервер.
  • advertise_addr: измените этот параметр на соответствующий IP -адреса сервера consul
  • bootstrap_expep: Сколько будет серверов в вашем кластере?
  • Encrypt: Ключ, который получили на предыдущем шаге, на каждом сервере должен быть одинаковым.
  • retry_join: IP -адреса всех трех серверов для этого параметра.
# Full configuration options can be found at https://www.consul.io/docs/agent/config

# datacenter
datacenter = "my-dc1"

# data_dir
# This flag provides a data directory for the agent to store state.
data_dir = "/opt/consul"

# client_addr
# The address to which the Consul will bind client interfaces, including the HTTP and DNS
# servers.
client_addr = "0.0.0.0"

# ui
# Enables the built-in web UI server and the required HTTP routes.
ui_config{
enabled = true
}


# server
# This flag is used to control if an agent is in server or client mode. When provided,
# an agent will act as a Consul server. Each Consul cluster must have at least one
# server and ideally no more than 5 per datacenter. All servers participate in the Raft
# consensus algorithm to ensure that transactions occur in a consistent, linearizable
# manner. Transactions modify cluster state, which is maintained on all server nodes to
# ensure availability in the case of node failure. Server nodes also participate in a
# WAN gossip pool with server nodes in other datacenters. Servers act as gateways to
# other datacenters and forward traffic as appropriate.
server = true

# Advertise addr - if you want to point clients to a different address than bind or LB.
advertise_addr = "192.168.56.10"

# bootstrap_expect
# This flag provides the number of expected servers in the datacenter.
bootstrap_expect=3

# encrypt
# Specifies the secret key to use for encryption of Consul network traffic.
encrypt = "jFtV8jj4h1hnXGqTllWH+sOqLo/tw9xnnfDHcVxVnYg="

# retry_join
retry_join = ["192.168.56.10", "192.168.56.11", "192.168.56.12"]

Сохраните файл и закройте редактор, когда закончите.

Затем запустите следующую команду для проверки правильности конфигурации. Если все хорошо, то вы должны получить сообщение «Configuration is valid!»

Теперь включим службу consul и добавим ее в автозагрузку

Теперь проверим статус службы consul на первом сервере

На втором

И на третьем

Работа с кластером Consul

Теперь, когда у нас есть настроенный кластер consul, мы можем взаимодействовать с ним через командную строку.

Проверка кластера consul

Запустите команду ниже, чтобы посмотреть какие сервера состоят в кластере

В нашем случае кластер consul состоит из трех серверов: alma91, alma92 и alma93

Также можно проверить список пиров на кластере, используя ниже команду.

Здесь можно получить подробную информацию о каждом сервере консула, включая ID, статус, количество всего серверов в кластере и так далее.

Добавление хранилище KV (Key-Value)

Запустите следующую команду, чтобы создать новую базу данных Value. В этом примере создадим новый ключ db_name с значением testdb.

Чтобы посмотреть значение ключа db_name, используем следующую команду

Взаимодействие с DNS

В этой статье при настройке consul, мы включили службу DNS в конфигурационном файле. Чтобы проверить DNS, используйте команду dig ниже.

В выводе можем увидеть все ip адреса с доменным именем consul.service.consul. В данном случае мы видим, что запись consul.service.consul имеет A записи 192.168.56.10, 192.168.56.11, 192.168.56.12

Доступ к web-интерфейсу

Откройте свой веб -браузер и посетите IP -адрес сервера Consul с портом 8500, например:

http://192.168.56.10:8500/ui/

Вы попадете на веб-панель consul. Использовать для входа можно любой сервер, принципиальной разницы нет.

На главной странице, вы можете увидеть доступные серверы в кластере

Можем посмотреть подробную информацию по каждому серверу в пункте Nodes

Доступные ключи в базе KV можно посмотреть в пункте Key/Value

Заключение

В этой статье познакомились с тем как развернуть кластер consul, добавили ключ со значением в хранилище KV. На выходе получили настроенный кластер consul с работающим DNS сервером.

Теперь вы можете активировать ACL (списки управления доступа) и реализовать TLS для соединений между серверами консул и клиентами.

Was this helpful?

0 / 0

Добавить комментарий 0