<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.cless.pro/index.php?action=history&amp;feed=atom&amp;title=Keepalived._Almalinux_8._Installation_and_Configuration</id>
	<title>Keepalived. Almalinux 8. Installation and Configuration - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.cless.pro/index.php?action=history&amp;feed=atom&amp;title=Keepalived._Almalinux_8._Installation_and_Configuration"/>
	<link rel="alternate" type="text/html" href="https://wiki.cless.pro/index.php?title=Keepalived._Almalinux_8._Installation_and_Configuration&amp;action=history"/>
	<updated>2026-10-22T22:02:45Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.36.2</generator>
	<entry>
		<id>https://wiki.cless.pro/index.php?title=Keepalived._Almalinux_8._Installation_and_Configuration&amp;diff=1581&amp;oldid=prev</id>
		<title>Cless: Новая страница: «= Description = Реализация протокола VRRP на Linux  = Links = https://habr.com/ru/post/524688/  = Installation =  == All servers == &lt;code&gt;dnf...»</title>
		<link rel="alternate" type="text/html" href="https://wiki.cless.pro/index.php?title=Keepalived._Almalinux_8._Installation_and_Configuration&amp;diff=1581&amp;oldid=prev"/>
		<updated>2023-06-28T05:40:38Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «= Description = Реализация протокола VRRP на Linux  = Links = https://habr.com/ru/post/524688/  = Installation =  == All servers == &amp;lt;code&amp;gt;dnf...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Description =&lt;br /&gt;
Реализация протокола VRRP на Linux&lt;br /&gt;
&lt;br /&gt;
= Links =&lt;br /&gt;
https://habr.com/ru/post/524688/&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== All servers ==&lt;br /&gt;
&amp;lt;code&amp;gt;dnf install -y keepalived&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mv -f /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /etc/keepalived/keepalived-notify.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 umask -S u=rwx,g=rx,o=rx&lt;br /&gt;
 exec echo &amp;quot;[$(date -Iseconds)]&amp;quot; &amp;quot;$0&amp;quot; &amp;quot;$@&amp;quot; &amp;gt;&amp;gt;&amp;quot;/var/run/keepalived.$1.$2.state&amp;quot;&lt;br /&gt;
&amp;lt;code&amp;gt;chmod +x /etc/keepalived/keepalived-notify.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Configuring =&lt;br /&gt;
&lt;br /&gt;
== Блок vrrp_script ==&lt;br /&gt;
Скрипт, который демон keepalived будет использовать для определения работоспособности своего сервера. Если этот скрипт вернет ошибку, то демон перейдет в состояние FAIL, общий IP прыгнет на другой сервер. В этом же блоке описывается периодичность выполнения healthchek-ов и указывается пользователь, от имени которого запускается скрипт. В нашем случае используется опрос порта Kubernetes 6443/TCP. Но можно использовать мониторинг любого другого критично важного сервиса, падение которого включает перепрыгивание общего IP на другой сервер.&lt;br /&gt;
&lt;br /&gt;
== Блок vrrp_instance ==&lt;br /&gt;
'''state''' - задает начальное состояние сервера BACKUP или MASTER. В режиме nopreempt единственное допустимое значение — BACKUP&lt;br /&gt;
&lt;br /&gt;
'''interface''' - указывает, на каком сетевом интерфейсе будет поднят VIP&lt;br /&gt;
&lt;br /&gt;
'''virtual_router_id''' - уникальный идентификатор роутера VRRP. Возможные значения от 1 до 255. У всех узлов кластера это значение должно быть одинаковым. Рекомендуется в качестве router_id использовать последний байт VIP&lt;br /&gt;
&lt;br /&gt;
'''priority''' - задает приоритет данного экземпляра при выборе мастера. Мастером назначается сервер, у которого значение параметра priority выше. Если у нескольких серверов priority одинаковый, то мастер будет выбран случайным образом.&lt;br /&gt;
&lt;br /&gt;
'''advert_int''' - определяет, с какой периодичностью мастер должен сообщать остальным о себе. Если по истечению данного периода сервера не получат от мастера широковещательное уведомление, то они инициируют выборы нового мастера.&lt;br /&gt;
&lt;br /&gt;
'''nopreempt''' - означает, что если мастер пропал из сети, и был выбран новый мастер с меньшим приоритетом, то по возвращении старшего мастера, он останется в состоянии BACKUP. Т. е. если вы перезагрузили мастер, то он больше мастером не станет, пока новый мастер не отвалится. Если вы предпочитаете, чтобы мастером был какой-то конкретный сервер, то замените настройку nopreempt на preempt_delay&lt;br /&gt;
&lt;br /&gt;
'''notify''' - задает хук-скрипт, который будет вызываться при каждом изменении состояния сервера, и имя пользователя, от имени которого данный скрипт будет выполняться.&lt;br /&gt;
&lt;br /&gt;
'''authentication''' - задает пароль, длиной до 8 символов, который будет защищать кластер от случайных коллизий с другими серверами в локальной сети (Сейчас не советуют использовать этот параметр)&lt;br /&gt;
&lt;br /&gt;
'''virtual_ipaddress''' - задает VIP - общий IP для серверов, который прыгает с одного сервера на другой&lt;br /&gt;
&lt;br /&gt;
'''track_script''' - указывает на описание скрипта, осуществляющего healthcheck.&lt;br /&gt;
&lt;br /&gt;
== SERVER-1 ==&lt;br /&gt;
&amp;lt;code&amp;gt;nano /etc/keepalived/keepalived.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
 global_defs {&lt;br /&gt;
     enable_script_security&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 vrrp_script myhealth {&lt;br /&gt;
     script &amp;quot;curl -k &amp;lt;nowiki&amp;gt;https://127.0.0.1:6443&amp;lt;/nowiki&amp;gt;&amp;quot;&lt;br /&gt;
     interval 10&lt;br /&gt;
     user nobody&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 vrrp_instance VI_1 {&lt;br /&gt;
     state BACKUP&lt;br /&gt;
     interface ens32&lt;br /&gt;
     virtual_router_id 180&lt;br /&gt;
     priority 100&lt;br /&gt;
     advert_int 1&lt;br /&gt;
     nopreempt&lt;br /&gt;
     notify /etc/keepalived/keepalived-notify.sh root&lt;br /&gt;
 &lt;br /&gt;
     &lt;br /&gt;
 #    authentication {&lt;br /&gt;
 #        auth_type PASS&lt;br /&gt;
 #        auth_pass KPSjXfRG&lt;br /&gt;
 #    }&lt;br /&gt;
 &lt;br /&gt;
     virtual_ipaddress {&lt;br /&gt;
         192.168.199.180&lt;br /&gt;
     }&lt;br /&gt;
     track_script {&lt;br /&gt;
         myhealth&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== SERVER-2 ==&lt;br /&gt;
&amp;lt;code&amp;gt;nano /etc/keepalived/keepalived.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
 global_defs {&lt;br /&gt;
     enable_script_security&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 vrrp_script myhealth {&lt;br /&gt;
     script &amp;quot;curl -k &amp;lt;nowiki&amp;gt;https://127.0.0.1:6443&amp;lt;/nowiki&amp;gt;&amp;quot;&lt;br /&gt;
     interval 10&lt;br /&gt;
     user nobody&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 vrrp_instance VI_1 {&lt;br /&gt;
     state BACKUP&lt;br /&gt;
     interface ens32&lt;br /&gt;
     virtual_router_id 180&lt;br /&gt;
     priority 90&lt;br /&gt;
     advert_int 1&lt;br /&gt;
     nopreempt&lt;br /&gt;
     notify /etc/keepalived/keepalived-notify.sh root&lt;br /&gt;
 &lt;br /&gt;
     &lt;br /&gt;
 #    authentication {&lt;br /&gt;
 #        auth_type PASS&lt;br /&gt;
 #        auth_pass KPSjXfRG&lt;br /&gt;
 #    }&lt;br /&gt;
 &lt;br /&gt;
     virtual_ipaddress {&lt;br /&gt;
         192.168.199.180&lt;br /&gt;
     }&lt;br /&gt;
     track_script {&lt;br /&gt;
         myhealth&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== SERVER-3 ==&lt;br /&gt;
&amp;lt;code&amp;gt;nano /etc/keepalived/keepalived.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
 global_defs {&lt;br /&gt;
     enable_script_security&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 vrrp_script myhealth {&lt;br /&gt;
     script &amp;quot;curl -k &amp;lt;nowiki&amp;gt;https://127.0.0.1:6443&amp;lt;/nowiki&amp;gt;&amp;quot;&lt;br /&gt;
     interval 10&lt;br /&gt;
     user nobody&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 vrrp_instance VI_1 {&lt;br /&gt;
     state BACKUP&lt;br /&gt;
     interface ens32&lt;br /&gt;
     virtual_router_id 180&lt;br /&gt;
     priority 80&lt;br /&gt;
     advert_int 1&lt;br /&gt;
     nopreempt&lt;br /&gt;
     notify /etc/keepalived/keepalived-notify.sh root&lt;br /&gt;
 &lt;br /&gt;
     &lt;br /&gt;
 #    authentication {&lt;br /&gt;
 #        auth_type PASS&lt;br /&gt;
 #        auth_pass KPSjXfRG&lt;br /&gt;
 #    }&lt;br /&gt;
 &lt;br /&gt;
     virtual_ipaddress {&lt;br /&gt;
         192.168.199.180&lt;br /&gt;
     }&lt;br /&gt;
     track_script {&lt;br /&gt;
         myhealth&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
= Test =&lt;br /&gt;
&lt;br /&gt;
=== 1 ===&lt;br /&gt;
&lt;br /&gt;
* выключаем машину с самым высоким приоритетом&lt;br /&gt;
* общий IP присвоится машине со следующим по высоте приоритетом&lt;br /&gt;
&lt;br /&gt;
=== 2 ===&lt;br /&gt;
&lt;br /&gt;
* убиваем сервис на машине с высшим приоритетом, который открывает порт 6443&lt;br /&gt;
* общий IP присвоится машине со следующим по высоте приоритетом&lt;br /&gt;
&lt;br /&gt;
Логи смотреть в keepalived.INSTANCE.* на всех машинах&lt;br /&gt;
[[Категория:Keepalived]]&lt;br /&gt;
[[Категория:AlmaLinux 8]]&lt;/div&gt;</summary>
		<author><name>Cless</name></author>
	</entry>
</feed>