Tôi có một máy chủ HAProxy mà tôi đang sử dụng làm bộ cân bằng tải L7 cho các nút k8 của mình. Cụm của tôi được bật istio và tôi có một dịch vụ cổng vào istio được hiển thị qua NodePort
TÊN LOẠI CLUSTER-IP (CỔNG IP NGOÀI) TUỔI
cổng vào istio NodePort 10.11.140.167 <none> 15021:30301/TCP,80:31916/TCP,443:31517/TCP,15012:30768/TCP,15443:32020/TCP 11d
Từ máy chủ HAProxy, tôi đang cố gắng thực hiện kiểm tra sức khỏe trên /healthz/sẵn sàng
điểm cuối. Tôi đang sử dụng HAProxy 1.8 và haproxy.cfg
là như sau:
toàn cầu
nhật ký/dev/log cục bộ0
log /dev/log local1 thông báo
chroot /var/lib/haproxy
pidfile /var/run/rh-haproxy18-haproxy.pid
người dùng haproxy
nhóm haproxy
yêu tinh
thống kê ổ cắm /run/haproxy/admin.sock chế độ quản trị viên cấp 660 trình nghe fd
kiểm tra lây lan 21
# Vị trí tài liệu SSL mặc định
ca-base /etc/ssl/certs
crt-base/etc/ssl/riêng tư
# Mật mã mặc định để sử dụng trên ổ cắm nghe hỗ trợ SSL.
# Để biết thêm thông tin, hãy xem mật mã (1SSL). Danh sách này là từ:
# https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
# Có thể lấy danh sách thay thế với các chỉ thị bổ sung từ
# https://mozilla.github.io/server-side-tls/ssl-config-generator/?server=haproxy
ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
ssl-default-bind-options no-sslv3
mặc định
chế độ http
đăng nhập toàn cầu
tùy chọn httplog
tùy chọn donlognull
tùy chọn http-server-đóng
gửi lại tùy chọn
thử lại 3
thời gian chờ yêu cầu http 10 giây
hàng đợi thời gian chờ 1m
hết thời gian kết nối 10s
khách hàng hết thời gian chờ 1m
máy chủ hết thời gian chờ 1 phút
thời gian chờ http-keep-alive 10s
kiểm tra thời gian chờ 10s
maxconn 10000
thăng bằng vòng tròn
giao diện người dùng http-80
ràng buộc *:80
chế độ http
tùy chọn httplog
default_backend www-80
phụ trợ www-80
thăng bằng vòng tròn
chế độ http
tùy chọn httpchk /healthz/sẵn sàng HTTP/1.1
http-kiểm tra trạng thái mong đợi 200
máy chủ backendnode1 155.13.200.29:31916 kiểm tra cổng 30301 giảm 3 tăng 2 liên 1597
máy chủ backendnode2 155.13.200.28:31916 kiểm tra cổng 30301 giảm 3 tăng 2 liên 1597
máy chủ backendnode3 155.13.200.27:31916 kiểm tra cổng 30301 giảm 3 tăng 2 liên 1597
sức khỏe giao diện người dùng-80
ràng buộc *:8080
acl backend_dead nbsrv(www-80) lt 1
màn hình-uri/haproxy_status
màn hình thất bại nếu backend_dead
số liệu thống kê nghe # Xác định phần nghe gọi là "số liệu thống kê"
liên kết :9000 # Nghe trên localhost:9000
chế độ http
kích hoạt thống kê # Kích hoạt trang thống kê
thống kê ẩn phiên bản # Ẩn phiên bản HAProxy
lĩnh vực thống kê Haproxy\ Thống kê # Văn bản tiêu đề cho cửa sổ bật lên
thống kê uri /haproxy_stats # URI thống kê
thống kê auth haproxy:passwd
tôi đang dùng HTTP/1.1
để kiểm tra sức khỏe phụ trợ vì istio-ingressgateway
không chấp nhận HTTP/1.0
yêu cầu, nó dẫn đến mã lỗi 426
.
Đánh phần phụ trợ từ máy chủ HAProxy dẫn đến thành công:
cuộn tròn -I http://155.13.200.29:31916/healthz/ready
HTTP/1.1 200 OK
ngày: Thứ sáu, ngày 11 tháng 6 năm 2021 07:21:09 GMT
x-envoy-upstream-service-time: 0
máy chủ: phái viên
chuyển mã hóa: chunked
Tuy nhiên, kiểm tra sức khỏe HAProxy vẫn không vượt qua. Tôi nhận được các lỗi sau:
Ngày 11 tháng 6 07:18:22 hap-server01 haproxy[12348]: Máy chủ www-80/backendnode2 XUỐNG, lý do: Trạng thái Layer7 sai, mã: 400, thông tin: "Kiểm tra trạng thái HTTP mã trả về <3C>400<3E>" , kiểm tra thời lượng: 2ms. Còn lại 1 máy chủ đang hoạt động và 0 máy chủ dự phòng. 0 phiên hoạt động, 0 phiên được yêu cầu, 0 phiên còn lại trong hàng đợi.
Ngày 11 tháng 6 07:18:22 hap-server01 haproxy[12348]: Máy chủ www-80/backendnode2 XUỐNG, lý do: Trạng thái Layer7 sai, mã: 400, thông tin: "Kiểm tra trạng thái HTTP mã trả về <3C>400<3E>" , kiểm tra thời lượng: 2ms. Còn lại 1 máy chủ đang hoạt động và 0 máy chủ dự phòng. 0 phiên hoạt động, 0 phiên được yêu cầu, 0 phiên còn lại trong hàng đợi.
Ngày 11 tháng 6 07:18:22 hap-server01 haproxy[11795]: [CẢNH BÁO] 161/071821 (11795): Công nhân cũ 11798 đã thoát với mã 0
Ngày 11 tháng 6 07:18:22 hap-server01 haproxy[12348]: Máy chủ www-80/backendnode3 XUỐNG, lý do: Trạng thái Layer7 sai, mã: 400, thông tin: "Kiểm tra trạng thái HTTP mã trả về <3C>400<3E>" , kiểm tra thời lượng: 3ms. 0 máy chủ đang hoạt động và 0 máy chủ dự phòng còn lại. 0 phiên hoạt động, 0 phiên được yêu cầu, 0 phiên còn lại trong hàng đợi.
Ngày 11 tháng 6 07:18:22 hap-server01 haproxy[12348]: Máy chủ www-80/backendnode3 XUỐNG, lý do: Trạng thái Layer7 sai, mã: 400, thông tin: "Kiểm tra trạng thái HTTP mã trả về <3C>400<3E>" , kiểm tra thời lượng: 3ms. 0 máy chủ đang hoạt động và 0 máy chủ dự phòng còn lại. 0 phiên hoạt động, 0 phiên được yêu cầu, 0 phiên còn lại trong hàng đợi.
Tôi hiểu mã trạng thái đó 400
xảy ra đối với các yêu cầu xấu. Có điều gì đó bị lỗi trong cấu hình của tôi không haproxy.cfg
? Tôi cảm thấy như đó là cách tôi đang cố gửi HTTP/1.1
yêu cầu kiểm tra sức khỏe. Tuy nhiên, tôi không chắc phải thêm gì khác hoặc sửa đổi gì trong cấu hình.