2016-12-15 20 views
6

Có cách nào để làm cho kubernetes phân phối vỏ nhiều nhất có thể không? Tôi có "Yêu cầu" đối với tất cả các triển khai và Yêu cầu toàn cầu cũng như là HPA. tất cả các nút đều giống nhau.Phân bố khoang Kubernetes giữa các nút

Chỉ có một tình huống mà ASG của tôi thu nhỏ nút và một dịch vụ trở nên hoàn toàn không khả dụng vì tất cả 4 nhóm trên cùng một nút đã được thu nhỏ lại.

Tôi muốn duy trì tình huống trong đó mỗi lần triển khai phải trải rộng các vùng chứa của nó trên ít nhất 2 nút.

Trả lời

3

Âm thanh giống như những gì bạn muốn là Inter-Pod Affinity and Pod Anti-affinity.

Mối quan hệ giữa nhóm và chống ái lực được giới thiệu trong Kubernetes 1.4. Mối quan hệ giữa nhóm và chống mối quan hệ cho phép bạn hạn chế các nút mà nhóm của bạn đủ điều kiện lên lịch dựa trên các nhãn trên nhóm mà đang chạy trên nút thay vì dựa trên nhãn trên các nút. Các quy tắc có dạng “cụm này nên (hoặc, trong trường hợp chống ái lực, không nên) chạy trong X nếu X đó đã chạy một hoặc nhiều nhóm thỏa mãn quy tắc Y.” Y được biểu thị như một LabelSelector với một danh sách liên kết các không gian tên (hoặc "tất cả" không gian tên); không giống như các nút , vì các cụm được đặt tên không gian (và do đó các nhãn trên các cụm được đặt tên không hoàn toàn), bộ chọn nhãn trên nhãn nhóm phải chỉ định các vùng tên mà bộ chọn sẽ áp dụng. Khái niệm X là một miền cấu trúc liên kết như nút, giá, vùng nhà cung cấp đám mây, khu vực nhà cung cấp dịch vụ đám mây , v.v. Bạn thể hiện nó bằng cách sử dụng topologyKey là khóa cho nhãn nút mà hệ thống sử dụng để biểu thị một miền topo ví dụ xem các phím nhãn liệt kê ở trên trong phần “Interlude: built-in nhãn nút.”

Chống mối quan hệ có thể được sử dụng để đảm bảo rằng bạn đang lan rộng vỏ của bạn trên các lĩnh vực thất bại. Bạn có thể nêu rõ các quy tắc này dưới dạng tùy chọn hoặc các quy tắc cứng. Trong trường hợp thứ hai, nếu nó không thể đáp ứng ràng buộc của bạn, nhóm sẽ không nhận được lịch biểu.

+0

Tôi đoán đây là vấn đề về kubernetes. Trình lên lịch phải đủ thông minh để trải rộng các nhóm theo cách mà nó cung cấp tính khả dụng cao, ngay cả trong trường hợp nút bị hỏng. (Được cung cấp có nhiều hơn một nút). Affinity hoạt động, nhưng nó được sử dụng nhiều hơn khi chúng ta muốn các thùng chứa trạng thái được lên lịch trong nút có dung lượng ổ đĩa SSD. Chỉ là suy nghĩ của tôi, các bạn nghĩ sao? –

+1

Điều đó không đúng. Quy tắc sở thích ưa thích có thể chỉ định mối quan hệ giữa các nhóm sử dụng nhãn, bất kể chúng có bộ nhớ kèm theo hay không. –

+0

Tôi không tin rằng đây là cách tiếp cận đúng, Thực tế là tôi muốn các quả được lan truyền không có nghĩa là tôi không muốn có 2 trên cùng một nút. Giải pháp này giống như nói với tôi, Tạo một bộ daemon, đó không phải là những gì tôi đang tìm kiếm. hoặc có cách để tạo mối quan hệ nhóm thông minh như vậy sẽ quyết định xem có đủ khả năng trong triển khai hay không, để bắt đầu chia sẻ nhiều hơn cùng một nhóm trên cùng một nút – Gleeb

Các vấn đề liên quan