Điểm:0

K8S giới hạn số lượng nhóm bắt đầu cùng một lúc

lá cờ gp

Tôi gặp sự cố với K8S, tôi có khoảng 30 dịch vụ siêu nhỏ (java chạy trên khởi động mùa xuân). Microservices cần rất nhiều CPU chỉ để khởi động vì có rất nhiều thư viện. Khi tôi triển khai tất cả các vi dịch vụ cùng lúc, nó sẽ tạo ra tải CPU thực sự lớn trên các nút K8S và chúng được đánh dấu là không khả dụng. Tôi cần giới hạn số lượng nhóm khởi động đồng thời bằng cách nào đó để tránh tải cpu cao trên các nút. Có cách nào để làm điều này?

SYN avatar
lá cờ hk
SYN
Bạn cần điều chỉnh giới hạn/yêu cầu tài nguyên dựa trên mức tiêu thụ.
Điểm:1
lá cờ mc

Bạn có thể đặt CPU giới hạn và yêu cầu.

Sau khi bạn thiết lập các giới hạn này, ngay cả khi các giới hạn là rộng rãi, thời gian chạy kubelet và vùng chứa sẽ hoạt động cùng nhau để thực thi các giới hạn CPU. Cùng với đó, bạn có thể dự trữ tài nguyên cho chính Kubernetes để khối lượng công việc không gây rủi ro cho toàn bộ nút.

Sau khi bạn xác định những điều này, nhân Linux sẽ chịu trách nhiệm thực thi các giới hạn và đảm bảo rằng các tài nguyên khả dụng được phân bổ công bằng. Nếu bạn có DaemonSets trong cụm của mình, hãy đảm bảo rằng chúng cũng có tài nguyên và giới hạn. Bạn có thể xem xét chạy DaemonSets như đảm bảo, để tài nguyên của họ được khoanh vùng. Nhìn thấy Định cấu hình Chất lượng dịch vụ cho Pods.

Khi được kết hợp với nhau, các biện pháp này sẽ bảo vệ các nút của bạn khỏi khối lượng công việc trong khi vẫn cho phép các Nhóm ứng dụng đột nhập vào CPU khả dụng trong khi khởi động.

Nếu thấy vẫn còn sự cố, bạn có thể thực hiện thêm một bước nữa: trì hoãn mỗi lần khởi động một khoảng ngẫu nhiên. Bạn có thể làm điều đó mà không cần thay đổi ứng dụng, bằng cách chạy tùy chỉnh thùng chứa ban đầu trước khi khởi động ứng dụng chính. Sự chậm trễ ngẫu nhiên đó giúp tránh đàn sấm sét các vấn đề trong đó mỗi JVM chạy với cùng một mẫu truy cập tài nguyên cùng một lúc.

Điểm:0
lá cờ mc

Nếu bạn chắc chắn muốn giới hạn tỷ lệ số lượng Pod đang chạy trong quá trình triển khai, bạn có thể mở rộng cụm Kubernetes của mình bằng cách triển khai Triển khai Argo.

Với nỗ lực, bạn có thể xác định cơ chế triển khai của riêng mình để giới hạn số lần triển khai đồng thời bằng cách đặt siêu dữ liệu phù du và sau đó tạo cơ chế của riêng bạn (có thể là webhook truy cập xác thực hoặc plugin lập lịch) để giới hạn tốc độ tạo hoặc bắt đầu các nhóm có các nhãn này.

tôi không khuyến khích điều này: mặc dù Kubernetes có thể làm được điều đó, nhưng còn rất nhiều việc phải làm. Câu trả lời khác của tôi là một cách đơn giản hơn để đạt được kết quả tổng thể tương tự.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.