Điểm:0

Chạy ứng dụng PHP có hỗ trợ plugin

lá cờ cn

Tôi có một ứng dụng PHP đang chạy tốt trong Kubernetes, ngoại trừ một tình huống. "Vấn đề" là ứng dụng có thể được mở rộng bằng plugin. Trong trường hợp này, chúng tôi chỉ cần thêm plugin vào vùng chứa, xây dựng lại vùng chứa và triển khai lại. Lần tới khi đăng nhập, Quản trị viên cần xác nhận việc cài đặt plugin. Càng xa càng tốt. Nhưng mà! Vấn đề của chúng tôi là chúng tôi không thể gỡ cài đặt các plugin này nữa vì các plugin đang tạo các bảng và mục nhập (dành riêng cho plugin) trong các bảng khác nhau trong cơ sở dữ liệu.

Trong quá trình gỡ cài đặt, plugin sẽ xóa các bảng, v.v. Nhưng vì ứng dụng của chúng tôi nằm trong nhóm, nên các tệp trong hệ thống tệp vẫn hoạt động. Vì vậy, sau khi tải lại trang, ứng dụng sẽ tìm thấy plugin mới và sẽ cài đặt lại.

Về cơ bản, sau khi xóa một plugin, chúng tôi cần xây dựng lại vùng chứa không có plugin và triển khai lại. Sau đó, chúng tôi có thể xóa plugin tiếp theo, xây dựng lại vùng chứa, v.v... nhưng đó không phải là giải pháp.

Vì vậy, chúng tôi nghĩ rằng phải có một cách khác.Giải pháp tốt nhất là cài đặt nó trong một ổ đĩa, bởi vì trong trường hợp này, tất cả các nhóm đang sử dụng cùng một ổ đĩa và chúng ta có thể chia sẻ chúng giữa các nhóm php-fpm và các nhóm máy chủ web. Vì vậy, chúng ta có thể mở rộng chúng một cách độc lập với nhau. Nhưng trong trường hợp này, câu hỏi đặt ra là liệu có bất kỳ thứ gì giống như bộ chứa "thiết lập" chạy trên mỗi lần triển khai hay không. Vì vậy, bất cứ khi nào chúng tôi nâng cấp triển khai của mình, vùng chứa sẽ chạy một lần và đang gỡ cài đặt các plugin cũ/cài đặt các plugin mới/cài đặt các bản nâng cấp của ứng dụng của chúng tôi. Trong trường hợp này, các nhóm của chúng tôi chỉ cần ReadOnlyMany (ROX) và chỉ một nhóm (nhóm thiết lập) cần có quyền ghi.

Tôi biết có các bộ chứa init nhưng theo như tôi biết thì chúng chạy mỗi khi một nhóm mới được bắt đầu. Có ai có bất kỳ đề xuất nào về cách giải quyết vấn đề này hoặc đối mặt với các vấn đề tương tự không?

Klamber avatar
lá cờ ru
Vì ứng dụng PHP sẽ không ghi vào ổ đĩa này nên bạn cần ủy quyền nó cho một nhóm có quyền ghi. Tôi muốn sử dụng một số loại bộ xử lý công việc nền chạy trong nhóm/công việc đặc quyền. Ứng dụng phát hiện việc nâng cấp/xóa plugin -> đưa hành động vào hàng đợi công việc và thăm dò các thay đổi trạng thái hoặc thông báo lỗi. Nhóm công nhân kiểm tra hàng đợi công việc và thực hiện các hành động cần thiết, cập nhật trạng thái hoặc đặt thông báo trả về do lỗi. Có nhiều cách bạn có thể triển khai các công việc nền, nhưng tôi không biết khung ứng dụng của bạn là gì.

Đă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.