2014-10-20 19 views
7

Trên máy chủ hiện tại của tôi, tôi sử dụng các nâng cấp không giám sát để tự động xử lý các cập nhật bảo mật. Nhưng tôi tự hỏi những gì mọi người sẽ đề nghị để làm việc bên trong container docker. Tôi có một số vùng chứa docker chạy cho từng dịch vụ của ứng dụng của tôi. Tôi có nên cài đặt nâng cấp không giám sát trong mỗi thiết bị không? Hoặc có thể nâng cấp chúng cục bộ và đẩy hình ảnh được nâng cấp lên? Bất kỳ ý tưởng nào khác?Docker: Cách tốt nhất để xử lý các cập nhật bảo mật của các gói từ apt-get bên trong các thùng chứa docker

Có ai có kinh nghiệm về điều này trong sản xuất không?

+0

Các bản nâng cấp không cần giám sát có yêu cầu quy trình cron không? Bạn cũng quay lên cron trong mỗi container? – lid

+0

Hi @ lib, Hiện tại tôi đang, mặc dù tôi đoán tôi có thể có một thùng chứa cron, sau đó thực hiện chương trình nâng cấp không giám sát trực tiếp trên mỗi máy chủ, cũng như bất kỳ cần thiết khác ... – stilliard

Trả lời

2

Tôi tự động cập nhật như bạn đã làm (trước đó). Hiện tại tôi có vùng chứa Stage và không có gì trong Prod. Nhưng không có hại gì khi áp dụng cập nhật cho mỗi vùng chứa: một số hoạt động nối mạng dự phòng, có lẽ, nếu bạn có nhiều vùng chứa dựa trên cùng một hình ảnh, nhưng vô hại nếu không.

Việc xây dựng lại một vùng chứa tấn công tôi là tốn thời gian không cần thiết và liên quan đến một quá trình phức tạp hơn.

Thời gian WRT: Thời gian xây dựng lại được thêm vào thời gian cần thiết để cập nhật, do đó, đó là thời gian 'thêm' theo nghĩa đó. Và nếu bạn có quy trình khởi động cho vùng chứa của mình, những quy trình đó phải được lặp lại.

Độ phức tạp của WRT: Một mặt bạn chỉ cần chạy các cập nhật với apt. Mặt khác, về cơ bản bạn hoạt động như một máy chủ tích hợp: càng có nhiều bước, càng nhiều sai sót.

Ngoài ra, các bản cập nhật không tạo ra 'hình ảnh vàng' vì nó có thể lặp lại dễ dàng.

Và cuối cùng, vì hạt nhân chưa bao giờ được cập nhật, bạn sẽ không bao giờ phải khởi động lại vùng chứa.

+0

Hi @Rondo, Bạn nói đúng, tôi không lo lắng về một chút hoạt động mạng dự phòng, và khả năng cho các thùng chứa ở lại/chạy thay vì phải xây dựng lại và chạy mỗi lần sẽ phù hợp hơn nhiều, cảm ơn, tôi sẽ bắt đầu bằng cách sử dụng các nâng cấp không giám sát sau đó. – stilliard

+2

Vùng chứa có thể sẽ cần được khởi động lại nếu bản cập nhật đã thay đổi thư viện được chia sẻ, vì các thư viện thường chỉ được tải khi quá trình chạy được bắt đầu. – jochen

2

Tôi sẽ xây dựng lại vùng chứa. Chúng thường được định hướng để chạy một ứng dụng và có thể có ít ý nghĩa để cập nhật hệ thống tệp hỗ trợ và tất cả các ứng dụng được bao gồm nhưng không được sử dụng/tiếp xúc ở đó.

Có dữ liệu trong một khối lượng riêng cho phép bạn có tập lệnh xây dựng lại vùng chứa và khởi động lại vùng chứa. Nó sẽ có lợi thế là tải một container từ hình ảnh đó hoặc đẩy qua một kho lưu trữ đến một máy chủ khác sẽ có tất cả các bản sửa lỗi được áp dụng.

+0

Hi @gmuslera, điều này có ý nghĩa , mặc dù nếu bạn có nhiều thùng chứa để duy trì? Bạn có cần phải tự giữ các bản vá bảo mật của mỗi gói được sử dụng trong mỗi thùng chứa và xây dựng lại các thùng chứa có liên quan mỗi lần không? Hoặc bạn sẽ tự động hóa điều này bằng cách nào đó? Có lẽ chỉ đơn giản là có nó tái xây dựng mỗi tuần? – stilliard

+0

Có những cập nhật là "vấn đề" (theo tiêu chí chủ quan của chính bạn) và các cập nhật không có, và chính sách tuân theo chúng. Nếu điều này nhắm mục tiêu các ứng dụng đơn lẻ không gặp phải các sự cố bảo mật thường xuyên có thể ảnh hưởng đến bạn thì điều gì đó đặc biệt, không bình thường. YMMV – gmuslera

+0

Cảm ơn @gmuslera, điều đó có ý nghĩa rất nhiều. Tôi nghĩ tôi sẽ theo kế hoạch này nhưng tôi sẽ để câu hỏi của tôi mở lâu hơn một chút nếu được, trong trường hợp có ý tưởng khác, nhưng nếu không tôi sẽ đánh dấu câu trả lời này là một câu trả lời tuyệt vời :) – stilliard

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