Kịch bản mục tiêu lý tưởng
Có, bạn nên sử dụng bộ cân bằng tải và cập nhật từng trường hợp một. Tôi không chắc chắn nơi liên lạc giữa các container đến.
Ví dụ: hãy tưởng tượng bạn có một bộ cân bằng tải phục vụ trang web của mình A. Người dùng chỉ kết nối với nó và chỉ biết nó là "A". Bộ cân bằng tải biết rằng có hai hoặc nhiều phụ trợ (B, C, v.v.) và liệu chúng có phải là VM hay container không.
Sau đó, bạn muốn nâng cấp các phụ trợ, trong trường hợp này là các phiên bản Apache.
- đưa B ra khỏi các phụ trợ đủ điều kiện cho bộ cân bằng tải để nó không còn chấp nhận bất kỳ lưu lượng truy cập nào.
- chờ cho các yêu cầu hiện đang được phục vụ và các kết nối hiện có được đóng lại.
- cập nhật container hoặc VM bên dưới phục vụ B
- khởi động lại B, đợi cho nó tải và bắt đầu làm việc
- kiểm tra B để đảm bảo rằng nó phục vụ đúng yêu cầu mới
- thêm B trở lại nhóm phụ trợ cân bằng tải để kích hoạt lại lưu lượng
Sau đó, làm quá trình tương tự cho C, D, v.v.
Lưu ý rằng có một yêu cầu mở đối với việc nâng cấp tại chỗ các container Docker , từ tháng 11 năm 2013, nhưng dường như không có nhiều tiến triển, vì vậy giải pháp trên là điều bạn nên làm trong thời gian trung bình.
Phải làm gì cho một trang web trực tiếp hiện có
Có lẽ, bạn đang hỏi điều này bởi vì bạn đang chạy một trang web trực tiếp trong mô hình này và bạn muốn nâng cấp nó mà không có thời gian chết. Vì vậy, chúng ta cần đến trạng thái mục tiêu lý tưởng ở trên, nhưng tăng dần.
Hãy giả sử rằng:
- bạn có một tên DNS trỏ đến container của bạn
- container của bạn chạy trên một số địa chỉ IP
- Người dùng của bạn không biết địa chỉ IP của người chứa và nó không được mã hóa cứng ở bất cứ đâu
Nếu những giả định này là sai, trước tiên bạn nên sửa nó sao cho đúng.
Sau đó, làm theo các bước sau:
- tạo bộ cân bằng tải tại một IP mới và trỏ nó vào vùng chứa hiện tại làm phụ trợ duy nhất của nó
- thay đổi DNS để trỏ đến bộ cân bằng tải thay vì IP container trực tiếp
- thêm một phụ trợ Apache giống hệt nhau với cùng thiết lập bộ chứa VM +
- bây giờ bạn có một bộ cân bằng tải với hai phụ trợ B và C, vì vậy hãy làm theo các hướng dẫn trong phần "kịch bản mục tiêu lý tưởng" để nâng cấp chúng cùng một lúc
Cách cập nhật bộ cân bằng tải
Cách dễ dàng (được lưu trữ)
Tùy chọn đơn giản nhất là không chạy bộ cân bằng của riêng bạn. Ví dụ: nếu bạn đang sử dụng nền tảng đám mây cung cấp cân bằng tải như một dịch vụ, hãy xem xét sử dụng nó và sau đó bảo trì và cập nhật bộ cân bằng tải không phải là vấn đề.
Cách thủ công
Nếu bạn đang chạy bộ cân bằng tải của riêng mình, việc thêm một lớp cảm ứng (tức là DNS) sẽ giúp ích. Hãy giả sử như sau:
- rằng chúng tôi có một tên máy chủ phân giải IP của bộ cân bằng tải A mà chúng tôi muốn cập nhật
- bộ cân bằng tải của chúng tôi có một nhóm phụ trợ của P1, P2, v.v.
Chúng tôi tiến hành như sau:
và bạn đã hoàn thành.
Chi tiết, sơ đồ và dụng cụ
Xem các bài viết và công cụ này có thể giúp bạn tự động hóa quy trình, nhưng ý tưởng chung là như nhau:
Đạo đức
"Tất cả các vấn đề trong khoa học máy tính có thể được giải quyết bằng một mức độ gián tiếp khác, tất nhiên ngoại trừ vấn đề có quá nhiều chỉ định." - David Wheeler