Как настроить высокую доступность Nginx с помощью Pacemaker и Corosync в CentOS 7
На этой странице
- Шаг 1. Сопоставление файла хоста
- Шаг 2. Установите репозиторий Epel и Nginx
- Шаг 3. Установите и настройте Pacemaker, Corosync и Pcsd.
- Шаг 4. Создание и настройка кластера
- Шаг 5. Отключите STONITH и игнорируйте политику кворума
- Шаг 6. Добавьте плавающий IP-адрес и ресурсы
- Шаг 7. Добавьте правила ограничения в кластер
- Шаг 8. Настройка Firewalld
- Шаг 9. Тестирование
- Справочник
В этом руководстве мы шаг за шагом расскажем, как создать кластер высокой доступности Nginx Web Server с Pacemaker, Corosync и Pcsd. Мы создадим веб-сервер Active-Passive Cluster или Failover-cluster Nginx, используя Pacemaker в системе CentOS 7.
Pacemaker — это программное обеспечение для управления кластером с открытым исходным кодом, которое обеспечивает максимально высокую доступность ваших сервисов. Это расширенный и масштабируемый менеджер кластера HA, распространяемый ClusterLabs.
Corosync Cluster Engine — это проект с открытым исходным кодом, производный от проекта OpenAIS под новой лицензией BSD. Это система групповой связи с дополнительными функциями для реализации High Availability в приложениях.
Есть несколько приложений для интерфейсов Pacemaker. Pcsd — это один из интерфейсов командной строки Pacemaker и графический интерфейс для управления Pacemaker. Мы можем создать, настроить или добавить новый узел в кластер с помощью команды pcsd pcs.
Предпосылки
- 2 или более серверов CentOS 7
- web01 10.0.15.10
- web02 10.0.15.11
- web03 10.0.15.12
Что мы будем делать:
- Сопоставление хост-файла
- Установите репозиторий Epel и Nginx.
- Установка и настройка Pacemaker, Corosync и Pcsd
- Создание и настройка кластера
- Отключить STONITH и игнорировать политику кворума
- Добавить плавающий IP-адрес и ресурсы
- Добавить правила в кластер
- Настройка брандмауэра
- Проверьте настройку
Шаг 1. Сопоставьте хост-файл
Примечание. Выполните шаги 1–3 на всех серверах web01, web02 и web03.
Первый шаг, который мы должны сделать, – отредактировать файл хоста на каждом сервере, чтобы сопоставить имя хоста всех серверов. У нас есть серверы web01, web02 и web03, войдите на каждый сервер с учетной записью ssh.
ssh [01,02,03]
Отредактируйте файл /etc/hosts с помощью vim.
vim /etc/hosts
Вставьте туда следующую конфигурацию.
10.0.15.10 web01
10.0.15.11 web02
10.0.15.12 web03Сохранить и выйти.
Теперь проверьте конфигурацию сопоставления хостов.
ping -c 3 web01
ping -c 3 web02
ping -c 3 web03Убедитесь, что web01, web02 и web03 сопоставлены с правильными IP-адресами.
Шаг 2 — Установите репозиторий Epel и Nginx
На этом этапе мы установим репозиторий epel, а затем установим веб-сервер Nginx. Репозиторий EPEL или Extra Packages for Enterprise Linux необходим для установки пакетов Nginx.
Установите репозиторий EPEL с помощью следующей команды yum.
yum -y install epel-release
Теперь установите веб-сервер Nginx из репозитория EPEL.
yum -y install nginx
После завершения установки замените страницу index.html по умолчанию на каждом сервере новой страницей.
#Run Command on 'web01'
echo '<h1>web01 - hakase-labs</h1>' > /usr/share/nginx/html/index.html
#Run Command on 'web02'
echo '<h1>web02 - hakase-labs</h1>' > /usr/share/nginx/html/index.html
#Run Command on 'web03'
echo '<h1>web03 - hakase-labs</h1>' > /usr/share/nginx/html/index.htmlРепозиторий EPEL и веб-сервер Nginx теперь установлены в системе.
Шаг 3. Установите и настройте Pacemaker, Corosync и Pcsd.
Pacemaker, Corosync и Pcsd доступны в системном репозитории по умолчанию. Таким образом, все они могут быть установлены из репозитория CentOS с помощью следующей команды yum.
yum -y install corosync pacemaker pcs
После завершения установки включите автоматический запуск всех служб при загрузке системы с помощью приведенных ниже команд systemctl.
systemctl enable pcsd
systemctl enable corosync
systemctl enable pacemakerТеперь запустите интерфейс командной строки pcsd Pacemaker на всех серверах.
systemctl start pcsd
Затем создайте новый пароль для пользователя hacluster и используйте тот же пароль для всех серверов. Этот пользователь был создан автоматически во время установки программного обеспечения.
Вот как вы настраиваете пароль для пользователя hacluster.
passwd hacluster
Enter new password:Программный стек высокой доступности Pacemaker, Corosync и Pcsd установлены в системе.
Шаг 4 — Создайте и настройте кластер
Примечание. Выполняйте шаги 4–7 только на web01.
На этом шаге мы создадим новый кластер с 3 серверами Centos. Затем настройте плавающий IP-адрес и добавьте новые ресурсы Nginx.
Чтобы создать кластер, нам нужно авторизовать все серверы с помощью команды pcs и пользователя hacluster.
Авторизуйте все серверы с помощью команды pcs, а также пользователя и пароля hacluster.
pcs cluster auth web01 web02 web03
Username: hacluster
Password:Теперь пришло время настроить кластер. Определите имя кластера и все серверы, которые будут частью кластера.
pcs cluster setup --name hakase_cluster web01 web02 web03
Теперь запустите все службы кластера, а также включите их.
pcs cluster start --all
pcs cluster enable --allЗатем проверьте состояние кластера.
pcs status cluster
Шаг 5 — Отключите STONITH и игнорируйте политику кворума
Поскольку мы не использовали устройство ограждения, мы отключим STONITH. STONITH или Shoot The Other Node In The Head — это реализация фехтования на Pacemaker. Если вы работаете, лучше включить STONITH.
Отключите STONITH с помощью следующей команды pcs.
pcs property set stonith-enabled=false
Затем игнорируйте политику кворума.
pcs property set no-quorum-policy=ignore
Проверьте список свойств и убедитесь, что stonith и политика кворума отключены.
pcs property list
Политика STONITH и кворума отключена.
Шаг 6 — Добавьте плавающий IP-адрес и ресурсы
Плавающий IP-адрес — это IP-адрес, который можно автоматически переносить/перемещать с одного сервера на другой сервер в том же центре обработки данных. И мы уже определили плавающий IP-адрес для Pacemaker High-Availability: 10.0.15.15. Теперь мы хотим добавить два ресурса: ресурс с плавающим IP-адресом с именем virtual_ip и новый ресурс для веб-сервера Nginx с именем webserver.
Добавьте новый плавающий IP-адрес ресурса virtual_ip с помощью команды pcs, как показано ниже.
pcs resource create virtual_ip ocf:heartbeat:IPaddr2 ip=10.0.15.15 cidr_netmask=32 op monitor interval=30s
Затем добавьте новый ресурс для веб-сервера Nginx.
pcs resource create webserver ocf:heartbeat:nginx configfile=/etc/nginx/nginx.conf op monitor timeout="5s" interval="5s"
Убедитесь, что у вас нет ошибок, затем проверьте доступные ресурсы.
pcs status resources
Вы увидите два ресурса virtual_ip и веб-сервер. Добавлены новые ресурсы для плавающего IP и веб-сервера Nginx.
Шаг 7. Добавьте правила ограничений в кластер
На этом этапе мы настроим правила высокой доступности и настроим ограничение ресурсов с помощью интерфейса командной строки pcs.
Установите ограничение сопоставления для ресурсов веб-сервера и виртуального_ip с оценкой INFINITY. Кроме того, настройте ресурсы веб-сервера и virtual_ip на всех узлах сервера.
pcs constraint colocation add webserver virtual_ip INFINITY
Всегда устанавливайте ресурсы virtual_ip и веб-сервера на одних и тех же узлах.
pcs constraint order virtual_ip then the webserver
Затем остановите кластер и запустите снова.
pcs cluster stop --all
pcs cluster start --allТеперь снова проверьте ресурсы, и вы увидите их статус «Начато на том же сервере web01».
pcs status resources
Ресурсы virtual_ip и webserver запущены на одном сервере/узле web01.
Шаг 8 — Настройте Firewalld
HA-Cluster будет работать под конфигурацией брандмауэра firewalld — установите его, если у вас нет пакета.
yum -y install firewalld
Запустите firewalld и включите его автоматический запуск каждый раз при загрузке системы, используя следующие команды systemctl.
systemctl start firewalld
systemctl enable firewalldЗатем добавьте новые службы в firewalld с помощью команд firewall-cmd — добавьте службу высокой доступности, службы HTTP и HTTPS для Nginx.
firewall-cmd --permanent --add-service=high-availability
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=httpsПерезагрузите конфигурацию брандмауэра и проверьте все службы.
firewall-cmd --reload
firewall-cmd --list-allУбедитесь, что служба с HTTP и https есть в списке.
Шаг 9 — Тестирование
На этом этапе мы проведем тест для кластера. Проверьте состояние узла (в сети или в автономном режиме), проверьте участников и статус corosync, а затем проверьте высокую доступность веб-сервера Nginx, обратившись к плавающему IP-адресу.
Проверьте состояние узла с помощью следующей команды.
pcs status nodes
Все узлы подключены к сети.
Протестируйте элементы corosync.
corosync-cmapctl | grep members
Вы получите IP-адрес участников Corosync.
Проверьте элементы Corosync, и вы увидите результат, как показано ниже.
pcs status corosync
И, наконец, проверьте высокую доступность веб-сервера. Откройте веб-браузер и введите плавающий IP-адрес 10.0.15.15.
Вы увидите веб-страницу с сервера web01.
Затем остановите кластер на сервере web01 с помощью приведенной ниже команды.
pcs cluster stop web01
И снова проверьте страницу, и вы получите страницу с сервера web02, как показано ниже.
Дополнительный:
Проверьте состояние кластера с помощью приведенной ниже команды.
pcs status
И вы получите результат, как показано ниже.
Настройка высокой доступности веб-сервера Nginx с Pacemaker, Corosync и Pcsd на сервере CentOS 7 успешно завершена.
Ссылка
- http://www.alexlinux.com/pacemaker-corosync-nginx-cluster/