Làm cách nào để quản lý Consul và đại biểu của nó trong môi trường tự động mở rộng?


8

Chúng tôi có các môi trường Docker tự động mở rộng trong đó chúng tôi sử dụng Consul để khám phá dịch vụ. Các môi trường này có thể thêm hoặc xóa một thể hiện cứ sau vài phút.

Thử nghiệm lãnh sự ban đầu của chúng tôi cho thấy rằng rất dễ dàng để Lãnh sự mất số đại biểu. Có lẽ ngây thơ, thử nghiệm đầu tiên của chúng tôi là một thiết lập trong đó chúng tôi sẽ khởi động máy chủ Lãnh sự trên tất cả các trường hợp và để máy chủ Lãnh sự đó tham gia cụm. Phần đó đã hoạt động tốt.

Tuy nhiên, Consul không nhanh chóng gặt hái các nút không thể truy cập (mất khoảng 72 giờ?) Trong một môi trường rất có thể mở rộng, điều đó có nghĩa là danh sách các máy chủ của Consul tiếp tục phát triển và theo thời gian, hầu hết chúng đều "không thể truy cập được" và tại thời điểm đó, cụm mất đại biểu của nó.

Chúng tôi đã thấy phản hồi của armon từ gần hai năm trước về vấn đề này trên GitHub: https://github.com/hashicorp/consul/issues/454#issuecomment-125767550

Hầu hết những vấn đề này là do hành vi mặc định của chúng tôi cố gắng nghỉ phép duyên dáng. Mô hình tinh thần của chúng tôi là các máy chủ tồn tại lâu và không tắt máy vì bất kỳ lý do nào khác ngoài việc mất điện đột xuất hoặc bảo trì duyên dáng trong trường hợp bạn cần rời khỏi cụm. Nhìn lại đó là một mặc định xấu. Hầu như tất cả những điều này có thể tránh được chỉ bằng cách giết -9 máy chủ của Lãnh sự, ảnh hưởng đến việc mất điện.

Chúng tôi đã cố gắng tránh chạy các nút chuyên dụng, tồn tại lâu dài. Hãy nhớ rằng không có điểm nào, chúng tôi xóa các trường hợp N / 2 + 1 khỏi nhóm tự động mở rộng. Cụm EC2 có thể đến bất kỳ thời điểm nào để tiếp cận hầu hết các nút và có thể bỏ phiếu xem có nên xóa nút đó khỏi cụm Lãnh sự (hoặc công cụ khác) hay không.


Tôi sẽ tưởng tượng rằng một câu trả lời có ý nghĩa là không thể nếu không có thêm dữ liệu, chẳng hạn như: dân số của bạn lớn đến mức nào (về số lượng)? Bạn đã cố gắng gỡ lỗi cơ chế đại biểu / đồng thuận cơ bản để xem nguyên nhân gây ra sự chậm trễ trong việc gặt hái các thành viên không hoạt động? Thời gian loại bỏ cá thể là gì, bạn đã theo dõi nếu cá thể lãnh sự thực sự có thời gian để gửi từ bỏ của nó (duyên dáng hay không) đến phần còn lại của ASG?
Michael Bravo

Bạn đang bắt đầu chúng dưới dạng "chế độ máy chủ" hay "chế độ máy khách"? Tài liệu left_on_terminate nói rằng "chế độ máy khách" sẽ mặc định là true. Đối với tôi, có vẻ như các nhân viên lãnh sự bắt đầu là "chế độ máy chủ" nên sống lâu hơn bạn mô tả
Thymine

Cảm ơn tất cả. Câu trả lời của Tensibai là những gì chúng tôi đang tìm kiếm.
Alexandre

Câu trả lời:


6

Tôi sẽ đặt leave_on_terminatetùy chọn thành đúng. Theo tài liệu

leave_on_terminateNếu được bật, khi tác nhân nhận được tín hiệu HẠN, nó sẽ gửi thông báo Rời khỏi phần còn lại của cụm và rời đi một cách duyên dáng. Hành vi mặc định cho tính năng này thay đổi dựa trên việc đại lý có chạy như máy khách hay máy chủ hay không (trước Lãnh sự 0,7, giá trị mặc định được đặt vô điều kiện thành sai). Trên các tác nhân ở chế độ máy khách, điều này mặc định là true và đối với các tác nhân ở chế độ máy chủ, điều này mặc định là false.

Điều gì xảy ra khi một nút được tắt một cách duyên dáng là gửi SIGTERM đến tất cả các quy trình trước khi tắt máy, với cài đặt này trên tác nhân lãnh sự sẽ rời khỏi cụm sao cho nó sẽ không được coi là một nút có thể khởi động lại và trở lại trong cụm trong một vài giờ (đó là những gì trích dẫn của bạn nói nó làm theo mặc định).


Với điều này được bật, lãnh sự khách hàng đã chết được gặt hái ngay lập tức hay vẫn còn một sự chậm trễ? Tôi đã thử tùy chọn này trên Lãnh sự ở chế độ máy khách và sau khi chạy shutdown -h now, nút chết vẫn hiển thị ...
Casper

@Casper có nhiều cách khác nhau có thể không hoạt động như mong đợi, tôi đoán nó sẽ phụ thuộc nếu hệ thống daemon của bạn có đủ thời gian để khách hàng lãnh sự dừng lại một cách duyên dáng (giả sử bạn không khởi chạy ứng dụng khách với trình quản lý daemon chứ không phải là lệnh )
Tensibai

Cảm ơn bạn đã trả lời, đã lâu rồi :) Vì vậy, mục tiêu của tôi là có thời gian gặt hái thấp cho các nút chết, 72 giờ mặc định là quá dài và có vẻ như không có cách nào để tùy chỉnh thời gian gặt trên các nút máy khách
Casper

@Casper như tôi đã nói ở trên, chúng tôi cần thêm chi tiết để đưa ra bất kỳ lời khuyên nào, trong thiết lập hệ thống, phần dừng có thể được điều chỉnh để cho khách hàng lãnh sự dừng đúng cách trước khi tiếp tục quá trình tắt máy để có thể tự xóa hoặc có lỗi ở đâu đó , nhưng với thông tin hiện tại, chúng tôi chỉ có thể đoán và các trang web SE không thích nghi tốt với loại gỡ lỗi này
Tensibai
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.