Tôi đang cố định cấu hình keepalived theo cách sao cho nếu bất kỳ ứng dụng hoặc dịch vụ nào chạy trên nút chính bị lỗi, thì keepalived sẽ coi đó là lỗi và nút dự phòng sẽ đóng vai trò là nút chính và tiếp quản IP nổi từ nút chính.
Tôi đã viết một tập lệnh để kiểm tra xem dịch vụ X trên máy chủ chính có bị hỏng không, sau đó nó sẽ chuyển sang nút dự phòng.
conf keepalived của tôi là:
global_defs {
enable_script_security
}
vrrp_script keepalived_check {
tập lệnh "/root/new/check.sh"
khoảng thời gian 1
hết giờ 1
tăng 2
mùa thu 2
trọng lượng 0 đảo ngược
}
vrrp_instance V1_11 {
nhà nước MASTER
giao diện ens3
virtual_router_id 51
ưu tiên 101
quảng cáo_int 1
unicast_src_ip 192.168.10.129
unicast_peer {
192.168.10.130
}
xác thực {
auth_type VƯỢT QUA
auth_pass 1122
}
virtual_ipaddress {
192.168.10.231/24
}
track_script {
keepalived_check
}
}
Script kiểm tra trạng thái dịch vụ:
#!/bin/bash
var="$(systemctl is-active myservice.service)"
nếu [ $var == "đang hoạt động" ]
sau đó
tiếng vang 0
khác
tiếng vang 5
fi
Tôi đã tự dừng "myservice" bằng cách sử dụng
systemctl dừng myservice.service
Đầu ra cho tập lệnh là "5" như mong đợi. Nhưng với các cấu hình được đề cập ở trên, nút chính vẫn là nút chính và nó không chuyển quyền sở hữu sang nút dự phòng. Có bất kỳ cấu hình cụ thể nào mà tôi đã bỏ lỡ, sau đó vui lòng giúp tôi tìm ra cấu hình đó không?