NodeBalancer và bộ cân bằng tải nói chung hoạt động bằng cách lấy lưu lượng truy cập đến qua một số cổng nhất định và phân phối lưu lượng truy cập đó đến các phiên bản back-end được xác định trước. Đối với NodeBalancer, tất cả các thiết lập phù hợp với hành vi này đều được lưu trữ trong Configurations . Mỗi cấu hình chỉ định cổng đến, giao thức, thuật toán cân bằng tải, kiểm tra tình trạng và các nút back-end. Hướng dẫn này đề cập đến cách thêm hoặc chỉnh sửa các cấu hình này cũng như các tùy chọn có sẵn.
Thêm hoặc chỉnh sửa cấu hình
Mỗi cấu hình được gán một cổng vào duy nhất. Thực hiện theo hướng dẫn bên dưới để thêm hoặc chỉnh sửa cấu hình. Nếu ứng dụng của bạn yêu cầu nhiều cổng vào, hãy tạo một cấu hình cho mỗi cổng bạn muốn sử dụng. Điều này cung cấp một lượng lớn tính linh hoạt, cho phép mỗi cổng có các thiết lập cấu hình riêng biệt và các nút phụ trợ.
- Đăng nhập vào Cloud Manager , nhấp vào NodeBalancers trong menu bên trái và chọn NodeBalancer bạn muốn chỉnh sửa. Xem Quản lý NodeBalancers .
- Điều hướng đến tab Cấu hình . Tab này sẽ hiển thị danh sách tất cả các cổng đã được cấu hình.
- Mở cấu hình cổng bạn muốn chỉnh sửa hoặc tạo cấu hình mới bằng cách nhấp vào nút Thêm cấu hình khác .
Tùy chọn cấu hình
Cảng
Đây là cổng vào mà NodeBalancer đang lắng nghe. Đây có thể là bất kỳ cổng nào từ 1 đến 65534, mặc dù nó phải được đặt thành bất kỳ cổng nào mà phần mềm máy khách sẽ kết nối tới. Ví dụ, trình duyệt web sử dụng cổng 80 cho lưu lượng HTTP và cổng 443 cho lưu lượng HTTPS, mặc dù máy khách có thể thay đổi cổng bằng cách chỉ định cổng đó là một phần của URL.
Giao thức
Giao thức có thể được thiết lập thành TCP, HTTP hoặc HTTPS. Mặc dù mô tả ngắn gọn về từng giao thức được cung cấp bên dưới, hãy xem lại Giao thức khả dụng để biết thông tin đầy đủ hơn.
- TCP : Hỗ trợ hầu hết các giao thức lớp ứng dụng, bao gồm HTTP và HTTPS. Nên chọn tùy chọn này khi bạn muốn bật cân bằng tải lớp 4, sử dụng TLS/SSL pass-through, sử dụng HTTP/2.0 trở lên, cân bằng các dịch vụ không phải HTTP hoặc sử dụng Proxy Protocol . Vì NodeBalancer đóng vai trò là phương tiện truyền qua cho các gói TCP này nên bất kỳ lưu lượng được mã hóa nào cũng được bảo toàn và phải được giải mã trên các nút phụ trợ.
- HTTP: Lưu lượng truy cập web không được mã hóa sử dụng HTTP/1.1. Điều này chấm dứt yêu cầu HTTP trên NodeBalancer, cho phép NodeBalancer tạo yêu cầu HTTP mới cho các máy chủ phụ trợ. Điều này có thể được sử dụng khi phục vụ hầu hết các ứng dụng web tiêu chuẩn, đặc biệt nếu bạn định cấu hình NodeBalancer để sử dụng chế độ HTTPS với kết thúc TLS/SSL.
- HTTPS: Lưu lượng truy cập web được mã hóa bằng HTTP/1.1. Vì điều này chấm dứt yêu cầu trên NodeBalancer, nó cũng chấm dứt kết nối TLS/SSL để giải mã lưu lượng truy cập. Sử dụng điều này nếu bạn muốn cấu hình chứng chỉ TLS/SSL trên NodeBalancer chứ không phải trên các nút phụ trợ riêng lẻ.
Khi sử dụng cài đặt giao thức HTTPS , tất cả lưu lượng truy cập đều được giải mã trên NodeBalancer. Lưu lượng truy cập giữa NodeBalancer và các nút phụ trợ được gửi qua mạng trung tâm dữ liệu riêng, không được mã hóa và sử dụng giao thức HTTP.
Giao thức proxy
Khi chọn TCP làm giao thức, Proxy Protocol có thể được bật để gửi thông tin máy khách đến các nút back-end. Các nút back-end cũng phải bật Proxy Protocol trên các ứng dụng được hỗ trợ để nhận thông tin này. Có hai phiên bản Proxy Protocol khả dụng, v1 và v2 :
- v1 : Giao thức Proxy v1 thêm một chuỗi ký tự có thể đọc được vào tất cả các yêu cầu.
- v2 : Giao thức Proxy v2 bổ sung tiêu đề dữ liệu nhị phân hiệu quả hơn cho tất cả các yêu cầu.
Để biết thêm thông tin, hãy xem hướng dẫn Sử dụng giao thức Proxy với NodeBalancers .
Thuật toán
Thuật toán kiểm soát cách phân bổ các kết nối mới trên các nút phụ trợ.
- Round Robin : Phân bổ các kết nối theo thứ tự vòng tròn có trọng số trên các phần cuối.
- Kết nối ít nhất : Theo dõi số lượng kết nối của từng máy chủ và phân bổ các kết nối mới cho máy chủ có ít kết nối nhất.
- IP nguồn : Điều chỉnh IP của máy khách để phân bổ chúng cho cùng một back-end trong các yêu cầu tiếp theo. Điều này hoạt động miễn là tập hợp các nút back-end không thay đổi, tuy nhiên cài đặt Session Stickiness (bên dưới) có ảnh hưởng đến hành vi này.
Độ dính của phiên
Điều này kiểm soát cách các yêu cầu tiếp theo từ cùng một máy khách được định tuyến khi chọn một nút phụ trợ. Nó cho phép NodeBalancer duy trì phiên máy khách đến cùng một máy chủ phụ trợ.
- Không có : Không có thông tin phiên nào được lưu và các yêu cầu chỉ được định tuyến theo thuật toán (xem Thuật toán ở trên).
- Bảng : Điều này bảo toàn back-end ban đầu được chọn cho một địa chỉ IP theo thuật toán đã chọn. Các yêu cầu tiếp theo của cùng một máy khách được định tuyến đến back-end đó, khi có thể. Bản đồ này được lưu trữ trong NodeBalancer và hết hạn sau 30 phút kể từ khi được thêm vào. Nếu một nút back-end ngoại tuyến, các mục trong bảng cho back-end đó sẽ bị xóa. Khi một máy khách gửi một yêu cầu mới, sau đó nó được định tuyến lại đến một nút back-end khác (theo thuật toán đã chọn) và một mục mới được tạo trong bảng.
- HTTP Cookie : Yêu cầu giao thức cấu hình được đặt thành HTTP hoặc HTTPS. NodeBalancer lưu trữ một cookie (có tên là ) trên máy khách để xác định phần cuối nơi máy khách ban đầu được định tuyến đến. Các yêu cầu tiếp theo của cùng một máy khách được định tuyến đến phần cuối đó, khi có thể. Nếu một nút phần cuối ngoại tuyến, yêu cầu sẽ được định tuyến lại đến một nút phần cuối khác (theo thuật toán đã chọn) và cookie sẽ được ghi lại bằng mã định danh phần cuối mới.
NB_SRVID
Máy khách phải bật cookie. Nếu máy khách đã tắt cookie hoặc xóa cookie, tính liên tục của phiên không được bảo toàn và mỗi yêu cầu mới được định tuyến theo thuật toán đã chọn.
Nếu ứng dụng yêu cầu hoặc mong muốn duy trì phiên, bạn nên sử dụng cả thuật toán IP nguồn kết hợp với tính năng duy trì phiên Table hoặc HTTP Cookie .
Chứng chỉ TLS/SSL và khóa riêng tư
Khi giao thức HTTPS được chọn, các trường Chứng chỉ và Khóa riêng sẽ xuất hiện và phải được cấu hình đúng cách.
- Chứng chỉ : Chứng chỉ TLS/SSL (và chuỗi chứng chỉ) đã được cấp cho ứng dụng.
- Khóa riêng : Khóa riêng không có mật khẩu được liên kết với tệp chứng chỉ.
Bạn có thể lấy chứng chỉ cho tên miền của mình bằng cách sử dụng certbot hoặc mua chứng chỉ thông qua một cơ quan cấp chứng chỉ đáng tin cậy. Xem TLS/SSL Termination để biết thêm chi tiết về cách lấy chứng chỉ và cấu hình cả NodeBalancer và các nút back-end.
Nếu bạn muốn sử dụng giao thức truyền qua TLS/SSL và chấm dứt kết nối HTTPS trên các nút phụ trợ, hãy chọn giao thức TCP thay vì HTTPS .
Kiểm tra sức khỏe
NodeBalancers thực hiện cả kiểm tra tình trạng thụ động và chủ động đối với các nút back-end. Các nút back-end không phản hồi sẽ được đánh dấu là ngừng hoạt động và bị loại khỏi vòng quay.
Kiểm tra sức khỏe chủ động
Kiểm tra tình trạng hoạt động chủ động truy vấn các nút back-end bằng cách thực hiện kết nối TCP hoặc thực hiện yêu cầu HTTP. Để bật kiểm tra tình trạng hoạt động, hãy chọn một trong các loại sau:
- Kết nối TCP : Yêu cầu bắt tay TCP thành công với một nút phụ trợ.
- Trạng thái hợp lệ của HTTP : Thực hiện yêu cầu HTTP trên đường dẫn được cung cấp và yêu cầu phản hồi 2xx hoặc 3xx từ nút cuối.
- HTTP Body Regex : Thực hiện yêu cầu HTTP trên đường dẫn được cung cấp và yêu cầu biểu thức chính quy PCRE được cung cấp khớp với nội dung kết quả của yêu cầu.
Ngoài ra, hãy cấu hình các thiết lập sau để điều chỉnh tần suất và số lần thử:
- Khoảng thời gian kiểm tra : Số giây giữa các lần kiểm tra tình trạng hoạt động.
- Kiểm tra thời gian chờ : Số giây phải chờ trước khi coi đầu dò là lỗi. 1-30.
- Kiểm tra số lần thử : Số lần thăm dò không thành công trước khi đưa một nút ra khỏi vòng quay. 1-30.
Kiểm tra sức khỏe thụ động
Cài đặt kiểm tra thụ động kiểm soát xem kiểm tra sức khỏe thụ động có được bật hay không. Khi được bật, NodeBalancer sẽ giám sát tất cả các yêu cầu được gửi đến các nút back-end. Nếu yêu cầu hết thời gian chờ, trả về mã phản hồi 5xx (trừ 501 và 505) hoặc không kết nối được, back-end sẽ được đánh dấu là ngừng hoạt động và đưa ra khỏi vòng quay.
Các nút phụ trợ (Compute Instances)
Bộ cân bằng tải hoạt động bằng cách phân phối lưu lượng đến một nhóm máy chủ. Đối với NodeBalancer, các máy chủ này là Linode Compute Instance và được cấu hình như các nút back-end . Để biết thông tin về cách cấu hình các nút back-end, hãy xem hướng dẫn Cấu hình nút back-end ( Compute Instance ) .
nguồn: https://techdocs.akamai.com/cloud-computing/docs/configuration-options-for-nodebalancers