Как установить сервер Consul на AlmaLinux 9

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

В этом руководстве мы шаг за шагом рассмотрим установку кластера Consul с несколькими серверами на AlmaLinux 9.

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

На этом первом этапе вы подготовите серверы AlmaLinux к установке Consul, что включает в себя:

  • Настройка Firewalld для открытия портов.
  • Настройка SELinux на разрешительный режим.

Настройка Firewalld

Перед установкой пакетов необходимо открыть порты на серверах Consul. В случае операционной системы на базе RHEL для открытия портов вы будете использовать Firewalld.

Выполните приведенную ниже команду, чтобы открыть порты 8300, 8301, 8302, 8400, 8500 и 8600 на ваших серверах AlmaLinux. В случае успеха вы должны получить вывод типа success.

sudo firewall-cmd --permanent --zone=public --add-port={8300,8301,8302,8400,8500,8600}/tcp

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

sudo firewall-cmd --reload

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

sudo firewall-cmd --zone=public --list-all

настройка firewalld

Изменение SELinux на разрешительный

После настройки firewalld измените стандартный режим SELinux на разрешительный. Это позволит генерировать журналы ошибок SELinux без блокирования действий.

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

sudo setenforce 0
sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

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

sudo reboot

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

Настройте SELinux на разрешительный режим

Установка Consul через DNF

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

Для начала установите несколько базовых пакетов, выполнив следующую команду. Вход y чтобы продолжить установку.

sudo dnf install dnf-plugins-core nano

установка базовых пакетов

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

sudo dnf config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
sudo dnf repolist

Следующий результат подтверждает, что вы добавили репозиторий HashiCorp в свои системы.

добавить репозиторий hoshicorp

Далее установите Consul, выполнив следующую команду. Введите y, чтобы продолжить установку Consul.

sudo dnf install consul

установить consul

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

which consul
consul version

Приведенный ниже результат подтверждает, что двоичный файл Consul доступен по адресу /bin/consul, и текущей версией Consul является 1.17.

проверить консула

Настройка Consul

На данный момент вы установили Consul на все ваши серверы AlmaLinux. Давайте без лишних слов приступим к настройке кластера Consul с несколькими серверами. Для примера мы будем использовать три сервера AlmaLinux.

|  Hostname  |    IP Address   |
| ---------  |  -------------- |
|  consul1   |  192.168.10.41  |
|  consul2   |  192.168.10.42  |
|  consul3   |  192.168.10.43  |

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

sudo systemctl stop consul

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

consul keygen

сгенерировать ключ

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

sudo nano /etc/consul.d/consul.hcl

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

  • сервер: True означает, что узел будет работать как сервер Consul.
  • advertise_addr: Замените это значение соответствующим IP-адресом сервера Consul.
  • bootstrap_expect: Сколько серверов будет в вашем кластере?
  • зашифровать: У каждого сервера должен быть один и тот же ключ.
  • retry_join: Введите IP-адреса кластера Consul в этот параметр.
# Full configuration options can be found at https://www.consul.io/docs/agent/config

# datacenter
datacenter = “kitty-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
}

# default domain
domain = “consul”

# enable dns_config
dns_config{
enable_truncate = true
only_passing = 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.10.41”

# 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.10.41”, “192.168.10.42”, “192.168.10.43”]

Сохраните и выйдите из файла после завершения работы.

Далее выполните следующую команду для проверки конфигурации Consul. Если вы правильно указали синтаксис, вы должны получить результат типа ‘Конфигурация действительна‘.

sudo consul validate /etc/consul.d/

утвердить консула

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

sudo systemctl start consul
sudo systemctl enable consul

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

sudo systemctl status consul

В следующем выводе вы должны увидеть, что Consul запущен на сервере consul1.

consul1 запущен

В следующем выводе вы должны увидеть, что Consul запущен на сервере consul2.

consul2 runningh

В следующем выводе вы должны увидеть, что Consul запущен на сервере consul3.

consul3 запущен

Взаимодействие с кластером Consul

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

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

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

consul members

В этом примере кластер Consul состоит из трех серверов, consul1, consul2 и consul3.

список членов кластера consul

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

consul operator raft list-peers

Ниже вы можете увидеть подробную информацию о каждом сервере Consul, включая идентификатор, состояние, избирателя и версию RaftProtocol.

список пиров consul

Добавление KV (Key-Value) Store в Consul

Далее выполните следующую команду consul, чтобы создать новую базу данных ключей-значений. В этом примере вы создадите новый ключ имя_базы со значением testdb.

consul kv put consul/configuration/db_name testdb

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

consul kv get consul/configuration/db_name

Вы должны получить значение testdb, как показано ниже:

добавить kv consul

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

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

dig @127.0.0.1 -p 8600 consul.service.consul

В этом примере вы настроили серверы Consul в кластере с тем же доменным именем consul. Следующее подтверждает, что домен consul.service.consul с A-записями 192.168.10.41, 192.168.10.42, 192.168.10.43.

consul dns

Доступ к веб-интерфейсу (пользовательскому интерфейсу) Consul

Наконец, откройте веб-браузер и зайдите на IP-адрес сервера Consul с портом 8500, например http://192.168.10.41:8500/ui/ чтобы получить панель веб-администрирования Consul.

Ниже вы должны увидеть доступные серверы в кластере Consul.

веб-интерфейс consul

Теперь нажмите на кнопку Узлы меню, чтобы получить подробную информацию о каждом сервере.

список узлов

Затем нажмите на кнопку Ключ/Значение меню, чтобы получить список доступных KV на ваших серверах Consul.

проверить KV

Заключение

Итак, вы завершили пошаговую установку кластера Consul с тремя серверами AlmaLinux. Вы включили Consul Web UI и Consul DNS в кластере. Наконец, вы также узнали некоторые основные команды для взаимодействия с кластерами Consul, хранилищами ключевых значений и DNS.

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

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *