Tác động của việc sử dụng Triển khai Helm thay vì StatefulSets cho Cơ sở dữ liệu như MongoDB hoặc MySQL là gì?


7

Định nghĩa của một ứng dụng phi trạng thái dường như áp dụng cho các máy chủ cơ sở dữ liệu như MongoDB hoặc MySQL. Tôi tìm thấy Biểu đồ Helm như một loại kho lưu trữ mẫu cho Kubernetes. Tuy nhiên, ổn định xây dựng tất cả các triển khai sử dụng. Chỉ trong vườn ươm, không được cung cấp ổn định.

Tác động của việc sử dụng Triển khai cho Máy chủ DB là gì?

Có bất kỳ vấn đề nào như các vấn đề đồng bộ hóa / sao chép, khi chạy nhiều phiên bản trong một cụm chẳng hạn?

Bối cảnh: Tôi muốn chạy MongoDB trong một cụm chuyển đổi dự phòng, vì vậy ít nhất 2 trường hợp đang chạy.

Câu trả lời:


5

Quay trở lại khi Kubernetes công bố tính năng Statefulset mới với K8s v1.5 (chuyển đổi nó từ PetSettên cũ ), họ đã đưa ra một bài đăng blog thực sự tốt thông qua một ví dụ về cách sử dụng của nó: https://kubernetes.io/blog/2016/ 12 / statefulset-run-scale-stateful-application-in-kubernetes /

Đoạn đầu tiên có một mô tả thực sự tốt về các tính năng khác biệt luôn bị mắc kẹt trong tâm trí của tôi:

... Nhiều nhất một nhóm trên mỗi chỉ số, để triển khai các Pods trong tập hợp. Cùng với việc triển khai theo thứ tự, chấm dứt theo thứ tự, tên mạng duy nhất và lưu trữ ổn định liên tục ...

Chia nhỏ những điều quan trọng:

Tên mạng duy nhất

Trong một triển khai, tên mạng không quan trọng vì bất kỳ nhóm nào cũng có thể nhận công việc. Tuy nhiên, khi bạn đang vận hành mọi thứ như một cụm nhà nước, bạn có thể có khái niệm 'chủ nhân' và 'nô lệ'. Việc đặt tên mạng duy nhất này sẽ cho phép bạn giữ sự khác biệt bằng cách tham chiếu một nhóm cụ thể , với tên gia tăng có thể dự đoán được.

Lệnh chấm dứt

Điều này rất quan trọng đối với việc triển khai lại trong một cụm trạng thái vì bạn có thể có các máy quan trọng cần ở lại lâu hơn. Nếu bạn có các nút điều phối viên hoặc 'người lãnh đạo', thì đó là những nút cuối cùng được khởi động lại. StatefulSets cho phép bạn làm điều này. Các bài đăng blog được liên kết thậm chí cho thấy một ví dụ về điều này.

Lưu trữ ổn định liên tục

Có thể cho rằng, đây là sự khác biệt quan trọng nhất . Theo mặc định, StatefulSets giữ lại bộ nhớ của họ. Kubernetes không tự động xóa bộ nhớ được gắn vào Statefulset. Điều tương tự thể đạt được với việc triển khai, nhưng nó không phải là mặc định.

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.