主節點安裝
環境
[root@test2 ~]# keepalived -v
Keepalived v1.3.5 (03/19,2017)
HostName | IP | DES |
---|---|---|
test1 | 192.168.180.46 | master |
test2 | 192.168.180.47 | node-1 |
test3 | 192.168.180.48 | node-2 |
test4 | 192.168.181.18 | node-3 |
一、安裝部署
[root@test2 ~]# yum install -y keepalived
二、配置文件
查看當前要指定虛IP的網卡
[root@test2 ~]# ip add | grep ens160
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
inet 192.168.180.46/24 brd 192.168.180.255 scope global noprefixroute ens160
[root@test2 ~]#
[root@test2 ~]# vim /etc/keepalived/keepalived.conf
# 1 全局塊
global_defs {
# 接收郵件的郵箱列表
notification_email {
eric.mao@sinoeyes.com
}
notification_email_from eric@qq.com # 發送郵件的人
smtp_server smtp.exmail.qq.com # smtp服務器地址
smtp_connect_timeout 30 # smtp超時時間
router_id eric_keepalived_node_1 # 機器標識
vrrp_skip_check_adv_addr
vrrp_garp_interval 0
vrrp_gna_interval 0
}
# 2 VRRP協議 實例塊
vrrp_instance ERIC_VI_1 { # 定義一個vrrp的實例塊,實例塊的名稱可以任意起,最好是字符串,這裏我們定義的是 ERIC_VI_1
state BACKUP # 定義當前安裝keepalived軟件的服務器是 主節點(MASTER) 還是 備份節點(BACKUP)。
virtual_router_id 56 # 虛擬路由ID,主備必須要一致,負責相同虛擬IP的keepalived集羣,範圍是0-255
priority 100 # 優先級,誰的優先級高,誰更容易成爲主節點
nopreempt # 設置 nopreempt 防止搶佔資源
advert_int 1 # 主備服務器之間的通信間隔,單位是秒。
# 服務器之間的認證方式
authentication {
auth_type PASS # 指定認證方式。PASS簡單密碼認證(推薦),AH:IPSEC認證(不推薦)。
auth_pass 1111 # 指定認證所使用的密碼。最多8位。
}
interface ens160 # 指定虛擬IP定義在那個網卡上面(本機指定爲 ens160 網卡)
# 定義虛擬IP塊。客戶通過該ip訪問服務器
virtual_ipaddress {
192.168.180.168/24 # 與指定的網卡是同一網段虛擬IP(使用ip add進行查看ens160 網卡的網段)
}
}
三、啓動
[root@test2 ~]# systemctl start keepalived.service && systemctl enable keepalived.service && systemctl status keepalived.service
四、查看是否創建成功
備節點與主節點不同,需要停掉主節點,備節點纔可以查到虛擬IP;
由此可見,KeepAlived 高可用是通過動態切換生成虛擬IP地址來達到的高可用!
[root@test2 ~]# ip add | grep ens160
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
inet 192.168.180.46/24 brd 192.168.180.255 scope global noprefixroute ens160
# 發現多了一個虛擬IP就是成功了
inet 192.168.180.168/24 scope global secondary ens160
[root@test2 ~]#