Có cách nào để thêm nhiều máy chủ phụ trợ vào haproxy mà không cần khởi động lại haproxy không?


17

Chúng tôi muốn có thể thêm nhiều máy chủ phụ trợ theo yêu cầu. Ngay bây giờ tôi không thấy cách nào để thêm nhiều máy chủ phụ trợ vào tệp cấu hình mà không cần khởi động lại haproxy.

Câu trả lời:


15

Tôi chưa thử trường hợp sử dụng cụ thể này nhưng haproxy không hỗ trợ "tải lại nóng":

2.4.1) Hot reconfiguration
--------------------------
The '-st' and '-sf' command line options are used to inform previously running
processes that a configuration is being reloaded. They will receive the SIGTTOU
signal to ask them to temporarily stop listening to the ports so that the new
process can grab them. If anything wrong happens, the new process will send
them a SIGTTIN to tell them to re-listen to the ports and continue their normal
work. Otherwise, it will either ask them to finish (-sf) their work then softly
exit, or immediately terminate (-st), breaking existing sessions. A typical use
of this allows a configuration reload without service interruption :

 # haproxy -p /var/run/haproxy.pid -sf $(cat /var/run/haproxy.pid)

Nếu bạn có một tập lệnh init để bắt đầu và dừng haproxy, nó có thể hỗ trợ reloadđối số với một hàm như:

haproxy_reload()
{
    $HAPROXY -f "$CONFIG" -p $PIDFILE -D $EXTRAOPTS -sf $(cat $PIDFILE) \
        || return 2
    return 0
}

1
Tôi đã thử điều này nhưng tôi thấy rằng nó xóa quầy của tôi. Có lẽ tôi đang làm điều gì đó sai cách, hoặc đó là hành vi dự kiến?
Leandro López

6

Từ hướng dẫn:

> 1.6) Giúp quản lý quy trình

Haproxy hiện hỗ trợ khái niệm pidfile. Nếu đối số dòng lệnh '-p' hoặc tùy chọn toàn cầu 'pidfile' được theo sau với tên tệp, tệp này sẽ bị xóa, sau đó được lấp đầy với tất cả các pids của trẻ em, mỗi dòng trên một dòng (chỉ trong chế độ daemon). Tập tin này KHÔNG nằm trong chroot, cho phép hoạt động với một chroot chỉ đọc. Nó sẽ được sở hữu bởi người dùng bắt đầu quá trình và sẽ có quyền 0644.

Thí dụ :

global
    daemon
    quiet
    nbproc  2
    pidfile /var/run/haproxy-private.pid

# to stop only those processes among others :
# kill $(</var/run/haproxy-private.pid)

# to reload a new configuration with minimal service impact and without
# breaking existing sessions :
# haproxy -f haproxy.cfg -p /var/run/haproxy-private.pid -sf $(</var/run/haproxy-private.pid)

1

Ngoài ra, tùy thuộc vào phiên bản HA-proxy của bạn, bạn có thể muốn xem xét API động HA-Proxy như được mô tả bởi haproxy.com trong trang này: https://www.haproxy.com/blog/dynamic-scaling-for-microservice-with -r nb-api /

API động HA-Proxy đi kèm với phiên bản Enterprise.

Bạn nên xem xét API động HA-Proxy nếu bạn muốn thêm / xóa máy chủ một cách nhanh chóng như một cách thông thường hoặc nếu dự án của bạn ngụ ý trường hợp sử dụng như vậy.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.